Excusez-moi du dérangement, mais depuis quelques jours, j'ai
eu des soucis avec la conception d'une page web.
Ma page contient un formulaire dans lequel il y a 3
combobox, chacun devant afficher le contenu d'un champ d'une table de la base
de donnée mais en même temps reliés entre eux.
C'est à dire en clair, en sélectionnant une valeur du
premier combobox (se trouvant dans une table), le second affiche une liste de
valeur dont les données sont liées au premier, et après avoir choisi également
une valeur dans ce 2èm combobox, le troisième combobox aussi affiche une liste
de valeurs dépendantes du 2èm combobox.
Je suis parvenu à relier les 2 premiers combobox, en créant
une fonction javascript qui permet de relier le 1èr au second, mais j'arrive
pas à faire de même pour le 3èm en créant une seconde fonction qui permettrait
de relier les valeurs du 3èm au second.
Si quelqu'un a une idée, ça m'aiderait énormement. Si ça
vous aiderait de voir mieux clair, je pourrai vous montrer le contenu de mon
formulaire et de mes 3 tables.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 26 janv. 2009 à 12:14
bonjour,
j'avoue ne pas comprendre ?!?
si tu y parviens de la 1ère à la seconde,
appliques donc la même technique de la 2ème à la troisième !
si ce n'est pas aussi simple, tu devrais avoir compris le principe
pour la liaison 1 <==> 2, donc tu peux concevoir pour 2 <==> 3
cool0501
Messages postés6Date d'inscriptiondimanche 8 juin 2008StatutMembreDernière intervention 1 février 2009 26 janv. 2009 à 15:15
Bonjour,
C'est la première des choses auxquelles j'ai pensé après que le premier code eut marché, mais quand je conçois une deuxième fonction en partant de la première, ça ne m'affiche aucune valeur dans le second combobox.
C'est un peu plus compliqué que ça en a l'air...
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 26 janv. 2009 à 15:31
alors je te dirais bien que tu commets une erreur,
manque de bol ( oui, je sais on devrait dire pénurie de récipients à café ), :
je l'ai cassée hier soir, je te dirais bien que cette
erreur est à la ligne 532, mais mon foie, sans ma boule, je ne parviens
plus à trop rien voir
cool0501
Messages postés6Date d'inscriptiondimanche 8 juin 2008StatutMembreDernière intervention 1 février 2009 26 janv. 2009 à 15:56
Voici le contenu de ma page de formulaire :
--------------------------------------------
<head><script language="javascript">
function cat1(){ // fonction qui remplie le premier combobox
var listesection = Array();
<?php $i = 0;
$resultat=mysql_query("select categorie.indexc, souscategorie1.designation from categorie, souscategorie1 where categorie.indexc = souscategorie1.indexc");
while($row = mysql_fetch_array($resultat)){ ?>
listesection[<?php echo $i; ?>] = Array("<?php echo $row['indexc']; ?>", "<?php echo $row['designation']; ?>");
<?php $i++; } ?> // la requête qui permet de lire dans la base de donnée la relation entre les 2 tables et permettre l'affichage
var combo = document.getElementById('combo1');
var selected_value = combo.value;
combo_2 = document.getElementById('combo2');
combo_2.options.length = 1;
for(var i=0,j=1;i<listesection.length;i++){
if(listesection[i][0] == selected_value){
element = new Option(listesection[i][1], listesection[i][1]);
combo_2.options[j] = element;
j++; } } }
function cat2(){ } // là je ne sais pas quoi mettre pour que ça remplisse le 3èm combobox
</script></head>
<select name="combo1" size="1" id="combo1" onchange="javascript:cat1()"> // Utilisation de la première fonction javascript
<?php $requete=mysql_query("select indexc from categorie");
while($row = mysql_fetch_array($resultat)){
?>
<option value="<?php echo($row['indexc']); ?>"><?php echo($row['indexc']); ?></option><?php } ?> // la requête qui permet de lire dans la base de donnée et afficher le contenu du 1èr combobox
</select>
<select size="1" name="combo3" id="combo3"> //3èm combobox
</select>
---------------------------------------------------------------------------------------
Je pourrai également fournir le contenu et les détails concernant ma base de données, pour que vous pussiez vous faire de plus amples idées la-dessus.
Je vous remercie pour tout.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 26 janv. 2009 à 16:25
tout pour la 3ème liste est à faire donc ?!?
pour l'instant tu as un Array qui à chaque poste qui correspond
au 1er select donne un array des possibilités du 2ème select
il faut t'arranger pour qu'à chacune des ses possibilités
tu colles les possibilités du 3ème select
finalement un Array à 3 "dimensions" ( 3 "principales" en fait,
sans tenir compte du Array("<?php echo $row['indexc']; ?>", "<?php echo $row['designation']; ?>");
qui en ajoute une )
si tu veux gérer cela avec des Array
tu pouvais aussi ne pas stocker le 2éme select et faire une requête
vers le php (ajax ou pas ! ) qui ne te renvoie que les possibilités
en fonction du 1er choix et donc, même punition même motif avec select 3
<?php afficher select 1
choix select 1 fait ?
oui : { afficher select 2 en fonction du choix 1
choix select 2 fait ?
oui : { afficher select 3 en fonction du choix 1+2 }
}
?>
j'aurais plus opté pour cette piste, mais chacun ses goûts ,
et la caravane ne fait pas le moine
cool0501
Messages postés6Date d'inscriptiondimanche 8 juin 2008StatutMembreDernière intervention 1 février 2009 28 janv. 2009 à 00:13
Je crois que la solution idéale serait vraiment AJAX, le seul
inconvénient est que je m'y connais pas vraiment là-dans. Il me faudra
quelques temps d'apprentissage