Tableau avec listes déroulantes(récupération de chaque selection faite)
Bonjour,
J'ai un soucis, je ne vois pas comment faire en Javascript. Pouvez-vous m'aider, s'il vous plait.http://www.developpez.net/forums/ima...s/icon_sad.gif
Pour chaque molécule, l'utilisateur doit par l'intermédiaire de listes déroulantes, sélectionner les valeurs qu'il souhaite.
Actuellement, je suis arrivé à afficher un tableau avec les molécules ainsi que les listes déroulantes à selectionner mais je n'arrive pas à récupérer les données choisies. J'ai essayé de le faire en php mais je ne récupère que les valeurs de la dernière ligne.
Voici un exemple de ce que j'aimerai obtenir.
Au départ:
methane 2D/3D Psucre/Psaccharose
ethane 2D/3D Psucre/Psaccharose
A l'arrivée:
methane 3D Psucre
ethane 2D Psaccharose
J'ai commencé à faire des essais en javascript mais rien de concluant, voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
if(isset($_SESSION['lstMol']))
{
$c = count($_SESSION['lstMol']);
echo"<form action ='initcalcreorg.php' name='tab_form' method='post'>";
echo"<table>";
for ($i=0;$i<$c;$i++){
$mol1=$_SESSION['lstMol'][$i];
//echo $i;
//$type=$type[$i];
$type='"lstd'.$i.'"';
if ($_POST['champ_sel']=='idem'){
echo "<tr><td><b>- " .$mol1."</b></td><td><SELECT NAME='".$type."'size=1 id='".$type."'onchange=this.options[this.selectedIndex].value><option selected> choisir </option><option>2D</option><option>3D</option></SELECT></td></tr>";
$tabmole[$mol1] = Array("lstd" => $type);
//echo "<tr><td><b>- " .$mol1."</b></td><td><SELECT NAME='lstd +".$i."'size=1 id='lstd+".$i."'onchange=valid(this.value)><option selected> choisir </option><option>2D</option><option>3D</option></SELECT></td></tr>";
echo '<input type="hidden" value="'.$_POST['$type'].'"';
}
if ($_POST['champ_sel']=='different'){
echo "<tr><td><b>- " .$mol1."</b></td><td><SELECT NAME='lstd +".$i."'size=1 id='lstd+".$i."'onchange=valid(this.value)><option selected> choisir </option><option >2D</option><option>3D</option></SELECT></td><td>".$lp."</td><td><a href='constrprofil.php'> Créer Nouveau profil </a></td></tr>";
$tabmole[$mol1] = Array("lstd" => $type,"Nom_profil" => $lp);
}
}
echo "</table>";
echo "</form>";
} |
Code:
1 2 3 4 5 6 7 8 9
| <script language="JavaScript" type="text/javascript">
function valid(val)
{
// alert val retourne bien ce que je selectionne mais c'est pas ce que je veux
alert(val);
// cela marche pas car lstD+$i
document.tab_form.$type.value=val;
}
</script> |
Avec un id différent à chaque ligne, j'aurais peut être pu me débrouiller mais mon tableau est dynamique puisque à chaque utilisateur, je peux avoir de 1 à x lignes sélectionnées.
Merci d'avance pour votre aide.
Cordialement.
problème résolu (explication de Spacefrog + solution utilisée)
Bonjour,
Si cela peut aider quelqu'un voici les informations les plus importantes qui m'ont été données par Spacefrog:
- Re : concernant la réponse donnée, j'ai besoin d'explication s'il vous plait?
Citation:
Envoyé par claire63
Bonjour,
Cette méthode de select=monname[] je l'ai utilisé pour récupérer toutes les valeurs sélectionnées d'une liste déroulante à choix multiple mais dans mon cas ici j'ai x liste déroulante identique à chaque ligne molécule selectionnée. Je ne vois pas comment ça pourrait être la même chose? où alors il y a des choses que je n'ai pas completement compris, ce qui est possible? sI je fais un post[nomname], je ne vois pas comment je vais savoir que molécule1 2D...
Merci pour votre aide.
Cordialement.
ha désolé j'avais mal compris le x selects ...
à ce moment là c'est coté php qu'il faut faire un for ... in $_POST
Cordialement
Spacefrog
- Re : for ... in $_POST... (exemple valide?)
il y aurait peut être un moyen plus simple ...
il suffirait de mettre un input type hidden, dans le form
de nommer rationnellement les select par exemple sel_1 sel_2 etc ...
et sur le onsubmit du form mettre le nombre de selects dans le champs hidden
Code :
document.forms[0].elements['nbrsel'].value=document.forms[0].getElementsByTagName('select')
cela permettrait de connaitre l'étendue de la boucle for coté php en recupérant l$_POST['nbresel']
Cordialement
Spacefrog
- Bonjour,
J'étais sur un autre problème aujourd'hui, j'ai encore une question concernant votre explication.
Comment puis-je définir mes select1, select2... alors que je ne connais pas à chaque session le nombre de molécules qu'ils vont choisir.
J'ai surement pas tout compris dans l'explication ou je me suis mal exprimé, ce qui est très probable.
Exemple d'écran que j'aimerai obtenir :
[methane
ethane
propane] [ajouter]
=>je selectionne methane ethane et je clique sur ajouter
methane [2D [Psucre
3D] Psaccharose]
ethane [2D [Psucre
3D] Psaccharose]
[OK]
=> je clique sur OK et j'obtiens
methane 2D Psucre
ethane 3D Psaccharose
Merci d'avance pour votre aide.
Cordialement.