8792 sujets

Développement web côté serveur, CMS

Bonjour,
Depuis un certain temps, je travaille sur la partie PHP d'un formulaire qui commence à être tout à fait correct.
Cependant, il reste deux choses que je ne trouve pas comment faire : en cas d'erreur, comment ré-afficher la valeur du champ <select> et de celui <input type="file"> ?
Modifié par Whisno (27 Apr 2007 - 22:17)
Pour le select, il faut parcourir les valeurs disponibles et la comparer avec la valeur dernièrement sélectionnée. Si c'est la même, alors il faut ajouter l'attribut HTML selected="selected" à la ligne correspondante.
Pour l'input file, il est impossible d'indiquer une valeur par défaut au moyen de l'attribut value, pour des raisons de sécurité.
Explication : imagine <input type="file" value="C:\Windows\System32\......" /> un utilisateur peu attentif pourrait envoyer des informations sensibles à son insu.
Rapide et efficace, merci =)
Question complémentaire : pour le <select>, y a-t-il moyen de faire plus efficace qu'une chaîne de if {} elseif {} else {} ?
Ça, ça dépend de comment tu programmes ta liste.

Pour ma part, j'utilise souvent ce type de code :

$liste = array(
'value1'=>'Item 1',
'value2'=>'Item 2',
'value3'=>'Item 3',
'value4'=>'Item 4',
'value5'=>'Item 5'
);
echo "<select id=\"maliste\" name=\"maliste\">\r\n";
foreach ($liste as $value=>$label) {
echo "<option value=\"$value\"";
if ($_POST['maliste']==$value) echo " selected=\"selected\"";
echo ">$label</option>\r\n";
}
echo "</select>\r\n";

Après, c'est à toi de décider comment faire, à chacun sa cuisine, comme on dit. Je ne prétends pas avoir la solution de la mort qui tue, d'autant plus qu'il y a un nombre incalculable de façons de procéder, mais elle me convient personnellement bien.