formulaire différent selon le choix d'une liste

Eléphant du PHP | 357 Messages

12 oct. 2005, 16:18

Bonjour,
Le titre n'est certe pas expressif je vais essayer d être plus clair :
j'ai dans un formulaire deux listes déroulantes, je voudrai que mon choix de la liste1 influe sur le texte de ma liste2.

explication :
liste1 : OS version test

si sur la liste 1 je choisie OS ma liste 2 affiche WIN SUSE MANDRAKE
si sur la liste 1 je choisie version ma liste 2 affiche 3.11 2000 xp
etc ....

Je cherche des pistes je sais que ca ne peut se faire qu'en JS mais comme je suis très nul en JS je voudrai avoir des pistes.

Petit détail les paramatres de mes listes ( 1 et 2 ) sont des tableaux php
Merci, en espérant avoir été plus clair

Mammouth du PHP | 568 Messages

12 oct. 2005, 17:02

Je te dirais te passer ton tableau en un tableau Javascript, puis de regarder sur comment gérer l'ajout et la suppression d'éléments dans un SELECT... Tu as des informations sur le site de Tout Javascript...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 357 Messages

12 oct. 2005, 17:16

javais peur d'entendre ca :cry: merci en tout cas heddicmi vais faire un tour voir ca.
Si des gens ont déja fait ca (se dont j'en doute pas tous les avis sont bon a prendre :)

Mammouth du PHP | 568 Messages

12 oct. 2005, 17:32

Enfin PS quand même...

Tu peux le faire autrement qu'en javascript... En PHP... Ca impliquerait qu'en sélectionnant dans la liste OS ou version, tu dises à ta page de se recharger... Et suivant la valeur choisis, tu remplis la 2ème liste avec le bon tableau...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 357 Messages

12 oct. 2005, 17:35

Yep ca serai plus simple ca ... à méditer ... cependant mon formulaire est tellement spé que ca me semble difficile ;) :wink: mais merci en tout cas

Mammouth du PHP | 568 Messages

12 oct. 2005, 17:37

Yep ca serai plus simple ca ... à méditer ... cependant mon formulaire est tellement spé que ca me semble difficile ;) :wink: mais merci en tout cas
Bin le plus chiant ensuite, c'est conserver es valeurs pou les remettre dans la formulaire rechargé...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Mammouth du PHP | 1885 Messages

12 oct. 2005, 18:00

La question a déjà été traitée dans la FAQ de ce forum.
La question et la réponse se trouve à l'adresse suivante:
http://www.phpfrance.com/forums/voir_sujet-4562.php

N'hésite pas à revenir si tu as des questions sur les explications.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 357 Messages

12 oct. 2005, 18:02

super Xenon_54 je vais voir et je vous tiens au courant
merci en tout cas pour les piste

Eléphant du PHP | 357 Messages

12 oct. 2005, 18:16

Oui c'est un type d'exemple que j ai déja vu le soucil c'est qu'ici Cyrano utilise un Bdd moi pour cette appli je peux pas en utiliser une :?
Je vais continuer mes recherches merci pour les propals :wink:

Mammouth du PHP | 568 Messages

12 oct. 2005, 18:41

Un tableau, ça s'assimile à une petite bd dans ton cas... Sauf qu'au lieu de faire une requête, tu recherches manuellement dans ton tableau la valeur adequat...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphanteau du PHP | 38 Messages

12 oct. 2005, 23:14

je peux pas vraiment t'aider mais je peux te dire que à l'époque où je cherchais des javascripts sympa à mettre dans mon site (avant d'apprendre le javascript :D) j'avais trouvé exactement ce que tu cherches sur le site de ToutJavascript...

En fouillant un peu dans leurs codes à télécharger et en examinant le script tu devrais arriver à faire ce que tu veux sans trop de complications....

Mammouth du PHP | 1885 Messages

13 oct. 2005, 01:44

L'article sur AJAX a été publié dans la FAQ:
http://www.phpfrance.com/forums/voir_sujet-9551.php
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 357 Messages

13 oct. 2005, 11:54

voila le truc :
j ai fait des tableaux javascript y en a un paket ... Mais bon ... ensuite j ai fait une petite fonction js genre :

Code : Tout sélectionner

function reloadList(listfrom, listto, table, defaultvalue, init) { if (listfrom.options[listfrom.selectedIndex].value == "") { listto.options.length = 1; listto.options[0].value = ""; listto.options[0].text = ""; } else { for (i=0;i < table.length;i++) { if (table[i][0] == listfrom.options[listfrom.selectedIndex].value) { beginIndex = 0; tableCurrent = table[i]; if (defaultvalue) { listto.options[0].value = ""; listto.options[0].text = ""; beginIndex = 1; } listto.options.length = (tableCurrent.length - 1)/2 + beginIndex; var sizeTable = tableCurrent.length; for (j=1; j < sizeTable; j = j + 2) { listto.options[(j - 1) / 2 + beginIndex].value = tableCurrent[j]; listto.options[(j - 1) / 2 + beginIndex].text = tableCurrent[j + 1]; } } } if (! init) listto.selectedIndex=0; } }
puis dans mon formulaire j ai mon premier select tout remplis qui fait appel a cette fonction.
Puis le second est déja remplis avec déja des valeurs type:

Code : Tout sélectionner

MON premier select <select name="nom1" onchange="reloadList(document.forms[0].nom1,document.forms[0].nom2, tableau_titre_valeur_select2, true, false);"> <option value="">&nbsp;</option> <option value="valA" >TitreA</option> <option value="valB" >TitreB</option> <option value="valC" >TitreC</option> </select> MON second select <select name="nom2"> <option value="">&nbsp;</option> <option value="val1" >titre1</option> <option value="val2" >titre2</option> <option value="val3" >titre3</option> <option value="val4" >titre4</option> <option value="val5" >titre5</option> </select>
qu'en pensez vous
Le souci c'est que ca marche po :cry:

Mammouth du PHP | 568 Messages

13 oct. 2005, 14:06

Tu peux nous donner le code en entier histoire de tester le javascript...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 357 Messages

13 oct. 2005, 14:29

je vais vous donner les tableau en plus et normalement avec ca vous aurez tout ...
enfin voilà en gros le process:
Sur la page formulaire :

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" media="screen, projection" href="formulaire.css" /> <script src="control.js" type="text/javascript"></script> <title>formulaire</title> </head> <body> <form action="<?php echo $action; ?>" method="post"> <select name="nom1" onchange="reloadList(document.forms[0].nom1,document.forms[0].nom2, tableau_titre_valeur_select2, true, false);"> <option value="">&nbsp;</option> <option value="valA" >TitreA</option> <option value="valB" >TitreB</option> </select> MON second select <select name="nom2"> <option value="">&nbsp;</option> <option value="val1" >titreA 1</option> <option value="val2" >titreA 2</option> </select> <input type="submit" id="btprecedent" name="valid" value="valider" /> </body> </html>
et dans le fichier control.js:

Code : Tout sélectionner

tableau_titre_valeur_select2[2]=new Array(5); tableau_titre_valeur_select2[2][0]="valA"; tableau_titre_valeur_select2[2][1]="01"; tableau_titre_valeur_select2[2][2]="titreA 1"; tableau_titre_valeur_select2[2][3]="02"; tableau_titre_valeur_select2[2][4]="TitreA 2"; tableau_titre_valeur_select2[3]=new Array(5); tableau_titre_valeur_select2[3][0]="valB"; tableau_titre_valeur_select2[3][1]="10"; tableau_titre_valeur_select2[3][2]="titreB 1"; tableau_titre_valeur_select2[3][3]="15"; tableau_titre_valeur_select2[3][4]="titreB 2"; function reloadList(listfrom, listto, table, defaultvalue, init) { if (listfrom.options[listfrom.selectedIndex].value == "") { listto.options.length = 1; listto.options[0].value = ""; listto.options[0].text = ""; } else { for (i=0;i < table.length;i++) { if (table[i][0] == listfrom.options[listfrom.selectedIndex].value) { beginIndex = 0; tableCurrent = table[i]; if (defaultvalue) { listto.options[0].value = ""; listto.options[0].text = ""; beginIndex = 1; } listto.options.length = (tableCurrent.length - 1)/2 + beginIndex; var sizeTable = tableCurrent.length; for (j=1; j < sizeTable; j = j + 2) { listto.options[(j - 1) / 2 + beginIndex].value = tableCurrent[j]; listto.options[(j - 1) / 2 + beginIndex].text = tableCurrent[j + 1]; } } } if (! init) listto.selectedIndex=0; } }
Je vous ai mis le process pour que vous pouvez voir comment ca tourne mais élas je ne peux pas mettre le code réel :? dsl mais normalement avec tout ca vous pouvez tester et voir ou je veux en venir ... enfin j espere
Merci en tout cas heddicmi pour le temps que tu passes avec moi pour résoudre ce problème.
Cependant j'épluche a fond depuis hier TJS et j'ai déja trouver pas mal de piste mais je ne vois pas encore pourquoi mon process ne veut pas marcher j ai planter quelque part mais je vois pas ou ... :cry: