afficher selon base liste deroulante multiple selectionner

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : afficher selon base liste deroulante multiple selectionner

par Ryle » 23 oct. 2007, 11:53

Le plus simlpe, c'est d'ajouter des crochets dans le nom de ton select. Ainsi au lieu d'une variable avec une seule valeur, tu vas récupérer en php un tableau contenant les valeurs des options qui ont été sélectionnées :

Code : Tout sélectionner

<select size="5" name="cod[]" multiple>
Regarde ensuite le contenu de $_POST['cod'] (avec un print_r() par exemple) une fois le formulaire envoyé, tu verras que c'est devenu un tableau contenant tes valeurs. Il ne te reste plus qu'à les traiter avec un boucle genre foreach() :)

par sabrina » 23 oct. 2007, 11:43

HAOU ça marche, j'etais trop persuader que ça marcherai pas. Par contre j'ai un autre souci comment on enregistre dans une base a partir d'une liste multiple, comment recupere t on les valeur

merci

par Calimero » 23 oct. 2007, 11:33

Il manque le ; de fin de ligne à la ligne juste au dessus.
$tab[$i] = $data2['num_rs'] 

par sabrina » 23 oct. 2007, 11:30

j'ai fait un truc comme ça mais cela m'affiche comme erreur : Parse error: parse error, unexpected T_VARIABLE (ligne correspondant au $i++).


<?php
	  $tab = array();
	  $rs = mysql_query("SELECT num_rs
From nom_urg
where num_urg='$num'");
$i=1;
while ($data2 = mysql_fetch_assoc($rs)) {
    $tab[$i] = $data2['num_rs']
	 $i++;
	
	}
	  
	  print($tab);
echo '<select size=5 name="cod" multiple>>'."\n";  
 $req = mysql_query('SELECT `nom_rs`, `prenom_rs`, `num_rs` FROM `nomade` ORDER BY `nom_rs`') ;  
while($data = mysql_fetch_assoc($req))
{  ?>
          <div align="left">
      </div>
     <?php    if (in_array ($data['num_rs'], $tab)) { ?>
<option value="<?php echo ($data['num_rs']) ; ?>" selected><?php echo ($data['nom_rs'].' '.$data['prenom_rs']); ?> </option>    
  <?php   } else { ?>
  <option value="<?php echo ($data['num_rs']) ; ?>"><?php echo ($data['nom_rs'].' '.$data['prenom_rs']); ?> </option>    
  <?php } ?>  


merci

par Ryle » 23 oct. 2007, 10:41

Pas sur d'avoir bien compris la question... tu veux resélectionner dans une liste multiple les valeurs correspondantes à celles en base ? bah le principe est le même que pour une liste simple, il te faut ajouter l'attribut "selected" à chaque option que tu veux sélectionner.

Le plus simple est sans doute de constituer un tableau avec les valeurs que tu as en base et utiliser la fonction in_array() pour vérifier pour chaque option si celle-ci est contenue dans le tableau de valeur et donc doit être sélectionnée ou pas :)

afficher selon base liste deroulante multiple selectionner

par sabrina » 23 oct. 2007, 10:32

bonjour,

voila, j'aimerai savoir comment fait on pour selectionner dans une liste deroulante multiple selon des enregistrements deja choisi dans une base. Je sais comment procéder pour une liste deroulante simple mais pour une multiple je n'y arrive pas. Vous n'auriez pas un exemple que je pourrai adapter ? J'ai essayer de regarder sur le forum et dans d'autre mais je n'ai rien trouver.

Merci d'avance