Copier une liste <select> à l'identique
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 :aie:).
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 + :
Code:
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>'; |
Juste en dessous je me suis dit qu'il fallait créer un div pour afficher la nouvelle liste déroulante :
Code:
1 2
|
echo '<tr><td><div id="div'.$idcat.$nomcat.'" style="display:none;"></div></td></tr>'; |
Et ma fonction add_soc() appelée sur le onClick du bouton + :
Code:
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>';
} |
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 ?
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 :
Citation:
missing ) after argument list
[Break on this error] add_soc(45assureur);
Donc est-ce que je pars dans la bonne direction ? Est-ce que je me complique beaucoup trop ?
Un peu d'aide serait la bienvenue ^^