Page 1 sur 1
afficher selon base liste deroulante multiple selectionner
Posté : 23 oct. 2007, 10:32
par sabrina
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
Posté : 23 oct. 2007, 10:41
par Ryle
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

Posté : 23 oct. 2007, 11:30
par sabrina
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
Posté : 23 oct. 2007, 11:33
par Calimero
Il manque le ; de fin de ligne à la ligne juste au dessus.
$tab[$i] = $data2['num_rs']
Posté : 23 oct. 2007, 11:43
par sabrina
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
Posté : 23 oct. 2007, 11:53
par Ryle
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 :
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()
