Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3006 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Solution menu dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Solution menu dynamique

n°417467
hornetmen
GaZZzz... Et Flash....22
Posté le 05-06-2003 à 11:14:52  profilanswer
 


je voudrais réaliser une chose :
2 menus déroulants côte à côte, dans celui de gauche, les éléments sont issue d'une BD mySQL et selon ce qu'on choisi, le 2eme menu affiche des éléments de la même base de données en fonction de ce qui a été choisi pour le 1er menu.
exemple :
 
le premier menu propose :
-switch
-routeur
le second menu propose :
les ips de switches (si on a choisi switch)
les ips des routeurs (si on a choisi routeur)
 
switch, routeur et les ip se trouvent dans une table de la base de données
 
Et ensuite passer les 2 paramètres:
Switchs / Cisco -> http://toto.com/index.php?type=switch&marque=cisco
 
Et surtout si c'est possible dans la meme page...
Si qq'un peut m'aider....

mood
Publicité
Posté le 05-06-2003 à 11:14:52  profilanswer
 

n°417499
Mr yvele
yvele n'est plus.
Posté le 05-06-2003 à 11:24:30  profilanswer
 

www.nexen.net, tu as essayé?  :)

n°417525
chriscool0​07
Posté le 05-06-2003 à 11:33:40  profilanswer
 

Double menu déroulant dynamique : c'est en javascript :  
 http://www.script-masters.com/home [...] &script=60
 

n°417526
hornetmen
GaZZzz... Et Flash....22
Posté le 05-06-2003 à 11:33:42  profilanswer
 

Mr yvele a écrit :

www.nexen.net, tu as essayé?  :)  


Oui j'ai trainé mes baskettes un peu partout, mais je voudaris eviter un maximum les complications.
 
Je voudrais comprendre vraiment, sans faire betement Ctrl-C Ctrl-V

n°417565
hornetmen
GaZZzz... Et Flash....22
Posté le 05-06-2003 à 11:42:26  profilanswer
 

chriscool007 a écrit :

Double menu déroulant dynamique : c'est en javascript :  
 http://www.script-masters.com/home [...] &script=60
 
 


J'ai deja vu...
Mais je n'arrive pas à le faire en recupérant mes données provenant des ma bdd..
 
J'arrive à le faire en php de base, mais pas de menu dynamique....
 
Sinon, j'ai fais ca:
 
 
<html>
<body>
<?
 
require ("include/connect_db.inc.php" );
require ("include/funauto77_db.inc.php" );
$funauto77_db = funauto77_connecte_db();
//$marque = BMW;
?>
 <form method="get" action="liste2.php">  
 Choisissez le la marque :
 <SELECT NAME="marque">
 <option selected value=""> <? echo $_GET[marque]; ?>
<?php
 
$sql="SELECT MARQUE,MARQUE_CAT FROM $tbl_marque";
$result=mysql_query($sql,$funauto77_db);
 while($row = mysql_fetch_object($result))  
 {
 print "\t\t<option>$row->MARQUE\n";
 }
 
?>
 
 
 </select>
 <input type =submit VALUE = "Envoyer">  
 </form>
 
 
 
 
 <form method="get" action="liste2.php">  
 Choisissez le modele :
 <SELECT NAME="model">
 <option selected value=""> <? echo $_GET[model]; ?>
<?php
 
$sql1="SELECT * FROM $tbl_modele WHERE MODELE_CAT='$_GET[marque]'" or (selection);
$result1=mysql_query($sql1,$funauto77_db);
 while($row1 = mysql_fetch_object($result1))  
 {
 print "\t\t<option>$row1->MODELE\n";
 }
?>
 </select>
 <input type =submit VALUE = "Envoyer">  
 </form>
</body>
</html>
 
 
 
Mais avec 2 submit, j'arrive pas à faire passer Les 2 paramètres dans mon url....
Soit :
http://localhost/Funauto77/liste2. [...] ALFA+ROMEO
http://localhost/Funauto77/liste2.php?model=156+JTD
 
Mais moi je voudrais :
http://localhost/Funauto77/liste2. [...] el=156+JTD [i]


Message édité par hornetmen le 05-06-2003 à 11:42:54
n°417579
Mr yvele
yvele n'est plus.
Posté le 05-06-2003 à 11:45:42  profilanswer
 

hornetmen a écrit :


Oui j'ai trainé mes baskettes un peu partout, mais je voudaris eviter un maximum les complications.
 
Je voudrais comprendre vraiment, sans faire betement Ctrl-C Ctrl-V


 
ben justement, nexen c'est un guide de référence..  :)  
 
Il y a toutes les fonctions pour acceder à la base de données, pour le passage de variables dans l'URL (post get), les boucles, etc..

n°417623
chriscool0​07
Posté le 05-06-2003 à 11:57:54  profilanswer
 

euh le script est vraiment pas dur a modifier!!!  
Tu fais ta requete qui te donnent les ips des switchs, tu remplis menu[0][0]=new Option("192.168.2.1","null" )
menu[0][1]=new Option("192.168.2.2","null" )
etc etc...
 
Tu fais ta requete qui te donnent les ips des routeurs, tu remplis menu[1][0]=new Option("192.150.2.10","null" )
menu[1][1]=new Option("192.150.2.20","null" )
etc etc...
 
Le premier menu tu fais :  
 <SELECT NAME="theme" SIZE=1 onChange="selectmenu(this.form)">
      <OPTION selected VALUE="null">-=Votre Choix=-</option>
      <OPTION VALUE="Javascript:changeSousTheme(0)">Switchs </option>
      <OPTION VALUE="Javascript:changeSousTheme(1)">Routeurs</option>      
    </SELECT>
 
et emballé c'est pesé!

n°417640
hornetmen
GaZZzz... Et Flash....22
Posté le 05-06-2003 à 12:07:34  profilanswer
 

L'exemple des switchs c'était pour simplifier... ;)  
 
Mon script est un peu plus haut....

n°417644
chriscool0​07
Posté le 05-06-2003 à 12:09:45  profilanswer
 

euh switch/routeur ou marque/model bordel on s'en fout!!!!
tu y arrives ou pas???
 
tu veux pas qu'on te fasse le code par hasard?  :heink:


Message édité par chriscool007 le 05-06-2003 à 12:10:10
n°417791
hornetmen
GaZZzz... Et Flash....22
Posté le 05-06-2003 à 13:41:55  profilanswer
 

chriscool007 a écrit :

euh switch/routeur ou marque/model bordel on s'en fout!!!!
tu y arrives ou pas???
 
tu veux pas qu'on te fasse le code par hasard?  :heink:  


bah je suis bloqué au niveau des submit...
Je valide la marque.
ca transmet ca:
http://localhost/Funauto77/liste2. [...] ALFA+ROMEO
Ensuite ca me sort les modeles correspondant.
je valide le modele:
ca transmet ca:
http://localhost/Funauto77/liste2.php?model=156+JTD
 
Mais moi je voudrais ca:
 
http://localhost/Funauto77/liste2. [...] el=156+JTD
 
 
Je suis bloqué là...
Je contourne le javascript de cette facon....Mais là je vois pas....

mood
Publicité
Posté le 05-06-2003 à 13:41:55  profilanswer
 

n°419107
hornetmen
GaZZzz... Et Flash....22
Posté le 06-06-2003 à 11:18:29  profilanswer
 

:bounce:

n°419111
chriscool0​07
Posté le 06-06-2003 à 11:20:11  profilanswer
 

Pourquoi tu ne fais pas comme je t'ai indiqué avec les switchs/routeurs? tu n'auras qu'un seul submit en + ce qui est bien mieux!
mais bon c'est toi qui voit...  :(

n°419168
hornetmen
GaZZzz... Et Flash....22
Posté le 06-06-2003 à 11:34:56  profilanswer
 

Je ne maitrise pas le JS.... :??:  
 
Je ne comprends pas la methodologie..Je fait mes requettes, ca ok.
 
Ensuite, je sais pas comment faire pour le Java

n°419250
deliriumtr​emens
sic transit intestinal...
Posté le 06-06-2003 à 12:11:35  profilanswer
 

J'ai un exemple qui marche en ASP/Js, si tu imagines que tu peux traduire la partie ASP en PHP, voilà le code (il s'agit de choisir une catégorie dans un combo, le 2ème combo prend alors les sous-cat correspondantes).
 

Code :
  1. <script language="JavaScript" type="text/javascript">
  2. <%set rs1=CreateObject("ADODB.Recordset" )
  3. sql1="SELECT * FROM an_cat WHERE idsubcat=0"
  4. rs1.open sql1, conn, 3, 3
  5. Set rs2=CreateObject("ADODB.Recordset" )
  6. %>
  7. generationListea = new Array();
  8. generationListea[0] = '';
  9. <%
  10. While not rs1.eof
  11. sql2="SELECT * FROM an_cat WHERE idsubcat="&rs1("id" )
  12. rs2.open sql2, conn, 3, 3
  13. y=0
  14. %>
  15. generationListea[<%=rs1("id" )%>] = new Array(<%While not rs2.eof%>new Array("<%=rs2("id" )%>", "<%=rs2("nomcat" )%>" )<%
  16. y=y+1
  17. rs2.movenext
  18. If y<rs2.recordcount Then
  19. Response.write ","
  20. End If
  21. wend %>
  22. <%Response.write " );"
  23. rs2.close
  24. rs1.movenext
  25. wend
  26. %>
  27. var generationChoixAa;
  28. function generationChangerListeBa(leForm)
  29. {
  30. var B = leForm.cs1;
  31. var taille = B.options.length;
  32. for(var i=1; i < taille ; i++)
  33. {
  34. B.options[1] = null;
  35. }
  36. for(var i=0; i < generationListea[generationChoixAa].length; i++)
  37. {
  38. var opt = new Option(generationListea[generationChoixAa][i][1], generationListea[generationChoixAa][i][0]);
  39. B.options[B.options.length] = opt;
  40. }
  41. B.focus();
  42. }
  43. </script>
  44. <tr><td>Cat&eacute;gorie 2</td><td>
  45. <select name="v2" onchange="generationChoixAa=this.selectedIndex; generationChangerListeBa(this.form)">
  46. <option value=0>-- Choisir --</option>
  47. <%rs1.moveFirst
  48. while not rs1.EOF%>
  49. <option value="<%=rs1("id" )%>"><%=rs1("nomcat" )%></option>
  50. <%rs1.movenext
  51. wend
  52. rs1.close%>
  53. </select></td></tr>
  54. <tr><td>
  55. Sous cat&eacute;gorie 2</td>
  56. <td>
  57. <select name="cs1">
  58. <option value=0>-- Choisir --</option>
  59. </select>


 
Pour précision, j'ai ramassé le javascript sur le forum (Urd-Sama, je crois) et j'en ai fait mon beurre-ASP.


Message édité par deliriumtremens le 06-06-2003 à 12:13:37
n°419255
chriscool0​07
Posté le 06-06-2003 à 12:16:57  profilanswer
 

Bon je suis trop sympa : voilà le code complet : tu as juste as faire tes requetes pour remplir correctement les menus ET pour l'instant quand tu valides ca t'affiche leS choix effectuéS... à toi d'en faire ce que tu veux!
 
<html>
<body><div align=center><br>
<SCRIPT LANGUAGE="JavaScript">
menu=new Array()
 
menu[0]=new Array()
menu[1]=new Array()
 
menu[0][0]=new Option("Sélecitonner l'ip du routeur","null" )
menu[0][1]=new Option("192.168.0.2","192.168.0.2" )
menu[0][2]=new Option("192.168.0.20","192.168.0.20" )
 
menu[1][0]=new Option("Sélecitonner l'ip du switch","null" )
menu[1][1]=new Option("192.168.0.10","192.168.0.10" )
menu[1][2]=new Option("192.168.0.11","192.168.0.11" )
           
function changeSousTheme(numeroMenu){
 for (i=document.menuDeroulant.sousTheme.options.length-1;i>0;i--){
  document.menuDeroulant.sousTheme.options[i]=null
 }
   
 for (i=0;i<menu[numeroMenu].length;i++){
  document.menuDeroulant.sousTheme.options[i]=new Option(menu[numeroMenu][i].text,menu[numeroMenu][i].value)
 }  
 document.menuDeroulant.sousTheme.selectedIndex=0
}
 
function selectmenu(theme_prin){
 if (theme_prin.theme.options[theme_prin.theme.selectedIndex].value == "null" ){
  alert('selectionnez d\'abord switch ou routeur');
 } else{
  window.top.location.href = theme_prin.theme.options[theme_prin.theme.selectedIndex].value;
 }
}
 
function destination(){
 var destination1 = document.menuDeroulant.theme.options[document.menuDeroulant.theme.selectedIndex].text;
 var destination2 = document.menuDeroulant.sousTheme.options[document.menuDeroulant.sousTheme.selectedIndex].value;
 if(destination=="null" ){
  return ("Faites votre choix!" );
 }else{
  return ("choix : "+destination1+" - "+destination2);
 }
}
</SCRIPT>
 
<FORM NAME="menuDeroulant">
  <div align="center">
    <SELECT NAME="theme" SIZE=1 onChange="selectmenu(this.form)">
      <OPTION selected VALUE="null">-=Votre sélection=-
      <OPTION VALUE="Javascript:changeSousTheme(0)">Routeur  
      <OPTION VALUE="Javascript:changeSousTheme(1)">Switch  
    </SELECT>
    <SELECT NAME="sousTheme" style="width:225">
      <OPTION VALUE="null">Selectionner d'abord le type de matos</SELECT>
    <INPUT TYPE=button onclick="alert(destination())" VALUE="Valider">
  </div>
</FORM></div></body>
</html>

n°419260
chriscool0​07
Posté le 06-06-2003 à 12:22:11  profilanswer
 

Ca te va?  
 
ps : fonctionne bien entendu sur IE et Mozilla  :pt1cable:

n°428351
hornetmen
GaZZzz... Et Flash....22
Posté le 15-06-2003 à 20:10:31  profilanswer
 

Bon bah je galere encore....
J'arrive pas à retourner les resultats de mes requete dans les listes. :(

n°429216
hornetmen
GaZZzz... Et Flash....22
Posté le 16-06-2003 à 14:11:50  profilanswer
 

:bounce:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Solution menu dynamique

 

Sujets relatifs
un select dynamiqueComment centrer le text d'un menu select?
[Delphi] plugin et utilisation dynamique de dllcopie de form de façon dynamique
menu dynamique en javascript (grace a dreamweaver aussi ;)[C] Comment fait-on un tableau dynamique a 2 dimensions ?
solution autre que headervbaccelerator et menu
javascript menu slide 
Plus de sujets relatifs à : Solution menu dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR