Solution menu dynamique

Solution menu dynamique - PHP - Programmation

Marsh Posté le 05-06-2003 à 11:14:52    


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....

Reply

Marsh Posté le 05-06-2003 à 11:14:52   

Reply

Marsh Posté le 05-06-2003 à 11:24:30    

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

Reply

Marsh Posté le 05-06-2003 à 11:33:40    

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

Reply

Marsh Posté le 05-06-2003 à 11:33:42    

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

Reply

Marsh Posté le 05-06-2003 à 11:42:26    

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
Reply

Marsh Posté le 05-06-2003 à 11:45:42    

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..

Reply

Marsh Posté le 05-06-2003 à 11:57:54    

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é!

Reply

Marsh Posté le 05-06-2003 à 12:07:34    

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

Reply

Marsh Posté le 05-06-2003 à 12:09:45    

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
Reply

Marsh Posté le 05-06-2003 à 13:41:55    

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....

Reply

Marsh Posté le 05-06-2003 à 13:41:55   

Reply

Marsh Posté le 06-06-2003 à 11:18:29    

:bounce:

Reply

Marsh Posté le 06-06-2003 à 11:20:11    

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...  :(

Reply

Marsh Posté le 06-06-2003 à 11:34:56    

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

Reply

Marsh Posté le 06-06-2003 à 12:11:35    

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
Reply

Marsh Posté le 06-06-2003 à 12:16:57    

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>

Reply

Marsh Posté le 06-06-2003 à 12:22:11    

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

Reply

Marsh Posté le 15-06-2003 à 20:10:31    

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

Reply

Marsh Posté le 16-06-2003 à 14:11:50    

:bounce:

Reply

Sujets relatifs:

Leave a Replay

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