rimie1
Invité n'ayant pas de compte PHPfrance
18 avr. 2011, 05:24
rebonjour,
j'avance un petit peu comme une tortue, j'aimerais l'ameliorer au niveau de control des erreurs, par exemple ajouter le champs enctype au niveau de l'entete du formulaire:
public final function __construct($name, $method='', $action='', $enctype='') {
// l'entete du formulaire
// je verifie si enctype est la
if($enctype)
{
$form = '<form name="'.$name.'" method="'.$method.'" action="'.$action.'" '.$enctype.'>';
}
else // sinon pas la peine
{
$form = '<form name="'.$name.'" method="'.$method.'" action="'.$action.'">';
}
echo $form; // on affiche le formulaire
//code
}
public final function addInput($type, $name='', $value='', $size='', $maxlength='', $checked=''){
// ici je controle les champs:
switch($type)
{
case 'password':
echo '<input type="'.$type.'" name="'.$name.'" value="'.$value.'" size="'.$size.'" maxlength="' .$maxlength.'" id="'.$id.'" class="'.$class.'" />';
break;
case 'file':
echo '<input type="'.$type.'" name="'.$name.'" />';
break;
}
// si vous remarquiez le champs 'file' il faut ajouter au form l'attribut enctype 'ENCTYPE="multipart/form-data"', alors je fais une verification:
if(empty($name))
{
$this->error[] = '<li>Input nom vide</li>';
return false;
}
if($type == 'file')
{
$this->error[] = '<li>il existe un file</li>';
return false;
}
//code
}
Je voudrais pas afficher le message d'erreur 'il existe un file', mais de changer $form au constructeur vers celle qui comporte $enctype:
$form = '<form name="'.$name.'" method="'.$method.'" action="'.$action.'" '.$enctype.'>';
j'aurais le code ci-dessus automatique apres l'ajout d'un champs file:
<?php
$frm1 = new formulaire('monForm1', '', '', ''); // imprimer l'entête du formulaire (name, method, action)
$frm1->addInput('text', 'nomtext'); // champ text
$frm1->separation();
############## ici je l'ajoute donc il faut avoir un formulaire avec enctype
$frm1->addInput('file', 'nomFile', 'valeur'); // file upload
?>
merci