garder selection d'un liste multiselection

Eléphant du PHP | 138 Messages

21 avr. 2011, 10:59

Salut,

Je suis en train de bosser sur un formulaire, avant l'insertion des données dans la base je verifie que les identifiants n'existent pas (login ou pass en double) si ils n'existent pas pas de soucis par contre si ils existent je resoumets le formulaire en demandant a l'internaute de changer ces identifiants.
Afin de ne pas perdre tout ce que l'internaute a inserer dans le formulaire je garde les données comme ceci
<input name="log" type="text" class="bleu_petit" id="log" value="<?php echo $_POST['log']; ?>" size="20" />
LE hic c'est lorsque j'ai une liste en multiselection qui ressemble a ceci
                  <?php
				# On recupere la liste

$agrement_liste=mysql_query("SELECT id, name FROM agrement WHERE valide='Y' order by name ASC");

?>
                  <select name="agrement[]" size="5" multiple="multiple" class="bleu_petit" id="agrement[]">
                    <?php
      {
printf("<OPTION SELECTED VALUE=''>--Sélectionnez--</OPTION>");

while($rssag = mysql_fetch_row($agrement_liste))
         {
         printf("<OPTION VALUE='$rssag[0]'>$rssag[1]</OPTION>");
         }
      };
?>
                  </select>
Je voudrais garder la multi selection mais rien n'y fait cela ne fonctionne pas, avez vous une idée du moyen que je pourria utiliser pour garder cette multiselection afin de ne pas la perdre ??

Merci de votre aide.

Eléphant du PHP | 275 Messages

21 avr. 2011, 11:08

<option selected="selected" ...

Eléphant du PHP | 138 Messages

21 avr. 2011, 11:20

Salut,

J'ai testé ceci
$agrement_liste=mysql_query("SELECT id, name FROM agrement WHERE valide='Y' order by name ASC");
while($rssag = mysql_fetch_row($agrement_liste)){
if (in_array($rssag[0], $_POST[agrement])) 
   { 
      echo("<option value='" .$rssag[0]. "' selected>" .$rssag[1]. "</option>"); 
   } 
   else 
   { 
      echo("<option value='" .$rssag[0]. "'>" .$rssag[1]. "</option>"); 
   } 
} 
Mais cela ne fonctionne pas par contre le me demande si la variable $_POST doit etre $_POST[agrement][] ??
Merci de ton aide

Eléphant du PHP | 275 Messages

21 avr. 2011, 11:25

Non, ca devrait etre bon.

A par ça, ca devrait etre $_POST['agrement'], et pas $_POST[agrement]

Eléphant du PHP | 138 Messages

21 avr. 2011, 11:51

En effet ça fonctionne merci pour le coup de main