[Php/mySql+JavaScript] Listes à sélection dépendantes entre elles

Listes à sélection dépendantes entre elles [Php/mySql+JavaScript] - PHP - Programmation

Marsh Posté le 03-02-2003 à 23:18:01    

Bonsoir :hello:
 
J'aimerais réaliser un formulaire constitué de plusieurs listes à sélection, dont le contenu dépend des autres ! (listes remplies par une requête SQL prenant en paramètre les valeur s sélectionnées dans les autres listes)
 
Tout cela, afin de me construire petit à petit une sorte de grosse requête SQL, qui renverra le résultat qui intéresse le visiteur.
 
Je vois pas trop comment faire, il faut surement du Javascript là dedans pour modifier le contenu dynamiquement, mais je vois pas comment lancer mes requêtes Php/mySql à partir de ce javascript :/
 
Si quelqu'un a des idées je suis preneur.
Merci d'avance.
 
:jap:


Message édité par Notsukaw le 03-02-2003 à 23:21:33

---------------
[ Canon EOS 30D ] (Grip + Canon 50mm f/1.4 + Canon 18-55mm USM + Tamron 70-300mm Di LD Macro)  [Galerie perso]
Reply

Marsh Posté le 03-02-2003 à 23:18:01   

Reply

Marsh Posté le 03-02-2003 à 23:32:48    

tu fais des tableaux a plusieurs dimensions (ou des associatifs)
et sur le onchange du 1er select tu redefinis le contenu du 2e
je l'ai deja fait, ça marche plus ou moins, mais si ct a refaire, je n'hesiterais pas une seconde à recharger la page a chaque modif.. d'autant plus que si t'as plein de <select>s, tu vas alourdir la page inutilement


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 05-02-2003 à 11:33:24    

@Notsukaw
 
'Lut
 
Est ce que t'as trouve la reponse a te question ??
Si oui, est ce que ca te derangerait de poster le code stp, ce serait super cool
 
Merci

Reply

Marsh Posté le 05-02-2003 à 11:57:44    

@Notsukaw
 
'Lut
 
Est ce que t'as trouve la reponse a te question ??
Si oui, est ce que ca te derangerait de poster le code stp, ce serait super cool
 
Merci

Reply

Marsh Posté le 05-02-2003 à 12:00:39    

re

Reply

Marsh Posté le 05-02-2003 à 12:07:39    

Ca depend combien de possibilité tu as, si c est une region apres le departement et apres la ville, alors la oublie le tablo javascript et recharge a chaque fois sinon si c est des choix limité et que tu es sur qu a long terme il n y en aura pas une tonne, la solution de greg est la meilleur

Reply

Marsh Posté le 05-02-2003 à 12:12:12    

dans la premier select y'aura une famille d'articles et lorsque je click dessus, je souhaite avoir les produits appartenant a cette famille

Reply

Marsh Posté le 05-02-2003 à 14:09:47    

Reply

Marsh Posté le 05-02-2003 à 14:30:37    

Merci stellayr, c tt a fait le resultat que je cherche
 
N'est il po possible de remplir la deuxieme avec des infos contenues dans une BdD ??

Reply

Marsh Posté le 05-02-2003 à 14:31:25    

Oui voilà, c'était ce genre de choses que je voulais faire :jap:
 
Bon finalement j'ai mélangé un peu des deux solutions,
j'ai fait une partie en dur avec le javascript et le onChange,
parce qu'il y a des catégories qui vont pas évoluer.
 
Mais pour l'affichage des différentes valeurs possibles, je rappelle ma page avec les paramètres déjà sélectionnés, comme ça je fais ma requête pour remplir le reste des champs.
 
Pis comme j'aimerais faire du multi-critères, en fait je me créé une chaine de caractère que je renseigne au fur et à mesure avec les paramètres que j'obtiens pour constituer ma requête finale.


---------------
[ Canon EOS 30D ] (Grip + Canon 50mm f/1.4 + Canon 18-55mm USM + Tamron 70-300mm Di LD Macro)  [Galerie perso]
Reply

Marsh Posté le 05-02-2003 à 14:31:25   

Reply

Marsh Posté le 05-02-2003 à 14:52:59    

Ca te derangerait de poster ton code sur le forum, stp ???

Reply

Marsh Posté le 05-02-2003 à 15:29:41    

A chaque mois correspond plusieurs thèmes, les tableaux de ces thèmes sont contruits dynamiquement à l'intérieur du javascript.
Il ne reste alors plus qu'à afficher le contenu.
 
Je préfère te filer un exemple code javascript brut sans le PHP, ca sera plus simple à comprendre.
 

Code :
  1. // tableaux des modèles :
  2. var peugeot = new Array()
  3. peugeot = ["106","206","306","406"];
  4. var citroen = new Array()
  5. citroen = ["saxo","xsara","xantia","picasso"];
  6. function changeModele(val) {
  7. // pour vider la ligne 3 du tableau des modeles
  8. //document.formulaire.modele.options[3]=null;
  9. // pour vider le tableau des modeles
  10. document.formulaire.modele.options.length=0;
  11. var modele=val;
  12. switch (val)
  13. {
  14.         case 'peugeot' :
  15. for (i=0;i<peugeot.length;i++)
  16.  {
  17.  opt=new Option (peugeot[i],peugeot[i]+".html",true,false);
  18.  document.formulaire.modele.options[document.formulaire.modele.options.length]=opt;
  19.  }
  20. break;
  21. case 'citroen' :
  22. for (i=0;i<citroen.length;i++)
  23.  {
  24.  opt=new Option (citroen[i],citroen[i]+".html",true,false);
  25.  document.formulaire.modele.options[document.formulaire.modele.options.length]=opt;
  26.  }
  27. break;
  28. }
  29. }


 
et après dans la page un simple select :
 

Code :
  1. <select name="marque" onchange="changeModele(this.value)">
  2.  <option value="" selected>Choisissez une marque</option>
  3.  <option value="peugeot">   Peugeot</option>
  4.  <option value="citroen">   Citroën</option>
  5. </select>

Reply

Marsh Posté le 05-02-2003 à 15:38:43    

Merci bcp pour le code !!!!
 
Question subsidiaire : Est il possible d'appeler une fonction php avec du javascript ?? si oui qqn pourrait il me mettre sur la voie svp ??
 
Merci bcp

Reply

Marsh Posté le 05-02-2003 à 15:43:23    

Juntao2k2 a écrit :

Merci bcp pour le code !!!!
 
Question subsidiaire : Est il possible d'appeler une fonction php avec du javascript ?? si oui qqn pourrait il me mettre sur la voie svp ??
 
Merci bcp


 
js --> cote client
php --> cote server
 
=
 
pas possible

Reply

Marsh Posté le 05-02-2003 à 15:45:27    

Il suffit d'insérer du PHP dans ton javascript, ca marche très bien.
Par exemple dans mon code :
(les "str_replace" sont utilisés à la chaine pour les incompatibilités de caractères avec le javascript)
 
L'avantage c'est de ne pas recharger la page à chaque fois que tu changes de mois mais l'inconvénient c'est que la page est assez longue à charger.
 

Code :
  1. switch (val)
  2. {
  3. <?
  4. $k2_sc = "SELECT DISTINCT champ1 FROM table ORDER BY champ2 DESC";
  5. $r2_sc = mysql_query($k2_sc);
  6. while($t2_sc=mysql_fetch_array($r2_sc))
  7.  {
  8.  $t2_sc[champ1]=str_replace("N°", "Nw", $t2_sc[champ1]);
  9.  $t2_sc[champ1]=str_replace("-", "_", $t2_sc[champ1]);
  10.  $valeur2_sc=str_replace(" ", "vv", $t2_sc[champ1]);
  11.  echo "case '$valeur2_sc' :\nfor (i=0;i<$valeur2_sc.length;i++)\n{\nopt=new Option (".$valeur2_sc."[i],".$valeur2_sc."[i],true,false);\ndocument.selectionbook.theme.options[document.selectionbook.theme.options.length]=opt;\n}\nbreak;\n\n";
  12.  };
  13. ?>
  14. case 'rien' :
  15. for (i=0;i<rien.length;i++)
  16.  {
  17.  opt=new Option (rien[i],rien[i],true,false);
  18.  document.selectionbook.theme.options[document.selectionbook.theme.options.length]=opt;
  19.  }
  20. break;
  21. }


Message édité par Stellayr le 05-02-2003 à 15:48:30
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed