Bonjour,
je pense que mon problème fait appel à de l'AJAX, à moins que je ne me complique pour rien (et ça ce serait gentil de me le dire).
J'ai un formulaire avec plusieurs listes déroulantes, alimentées par le nom de sociétés provenant de la base de données. Chaque liste correspond à une catégorie différente.
Ex :
Assureur - <select></select> "+"
Installateur - <select></select> "+"
[...]
A côté de ces listes, j'ai un bouton "+" associé. Lorsque l'on clique dessus, j'aimerai faire apparaître juste en dessous de ma liste, la même liste avec le même nom de catégorie.
Ex :
Assureur - <select></select> "+" > je clique et ça affiche :
Assureur - <select></select>
Donc j'aurai deux fois la même liste, et je pourrai sélectionner une autre société appartenant à la même catégorie.
J'ai pensé au fait qu'il y avait les listes à choix multiples, mais esthétiquement parlant sur ma page, ça ne ferait pas terrible.
C'est pourquoi je cherche une autre solution !
J'ai donc commencé par créer une ligne avec le nom de ma catégorie, et la liste déroulante des sociétés, puis le bouton + :
Juste en dessous je me suis dit qu'il fallait créer un div pour afficher la nouvelle liste déroulante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $nomcat = $catsoc['nom_categorie_societe']; $idcat = $catsoc['id_categorie_societe']; echo '<tr>'; echo '<td>'.$nomcat.'</td> <td><select name="'.$idcat.'"> <option value="0-0">Sélectionnez une société</option>'; $req = mysql_query("SELECT id_societe, nom_societe FROM societe ORDER BY nom_societe ASC;"); while ($donnees = mysql_fetch_array($req)) { echo '<option value="'.$donnees['id_societe'].'-'.$donnees['nom_societe'].'"'. $selected.'>'.$donnees['nom_societe'].'</option>'; } echo '</select></td><td>'; echo '<input type="button" name="add" value="+" onclick="add_soc('.$idcat.$nomcat.');"/></td></tr>';
Et ma fonction add_soc() appelée sur le onClick du bouton + :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo '<tr><td><div id="div'.$idcat.$nomcat.'" style="display:none;"></div></td></tr>';
Et pour le moment ça s'arrête ici. Je pensais ensuite faire appel à une requête Ajax pour remplir ma liste déroulante, mais ça me ferait créer encore un div à l'intérieur de celui ci ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function add_soc(id) { document.getElementById('div'+id).style.display = 'block'; document.getElementById('div'+id).innerHTML = '<select name="'+id+'"><option></option></select>'; }
J'ai l'impression que ça va faire beaucoup de choses en fait tout ça pour recopier un élément.
D'autant plus qu'à ce stade là, j'ai cette erreur qui s'affiche :
Donc est-ce que je pars dans la bonne direction ? Est-ce que je me complique beaucoup trop ?missing ) after argument list
[Break on this error] add_soc(45assureur);
Un peu d'aide serait la bienvenue ^^
Partager