Problem: pola select option, gdzie wybór zależy od poprzedniego.
Witam - znalazłem gdzieś w sieci poniższy skrytp. Od razu zaznaczam, że działa. Działa tak, że są to 2 pola select option, gdzie wybór drugiego zależy od pierwszego - mam tylko pytanie jak go przerobić, żeby tych pól select option nie były 2 tylko 4?
Np. Wybieram markę samochodu i wyświetla mi Audi, następnie wybieram z dostępnych model: A4, następnie rocznik: 2004, następnie silnik: 2,0 i wypisuje mi że jest w bazie?

  1. <?
  2. //---polaczenie z baza danych
  3. include ("config.php");
  4. include ("polaczenie.php");
  5. //$baza = mysql_connect("localhost", "admin_bg", "admin_bg");
  6. //mysql_select_db("baza1");
  7.  
  8. //---zapytanie o marki
  9. $marki = mysql_query("SELECT DISTINCT(marka) FROM auta ORDER BY marka;");
  10.  
  11. //--w petli marki dodawane sa do tablicy $tmarki
  12. for ($i=0;$i<mysql_num_rows($marki);$i++) {
  13. $marka = mysql_fetch_row($marki);
  14. $tmarki[]=$marka[0];
  15.  
  16. //--na podstawie marki pobierane sa modele tej marki i tez w petli dodawane sa do tablicy dwuwymiarowej
  17. $wynik=mysql_query("SELECT DISTINCT (model) FROM auta WHERE marka='$marka[0]';");
  18. for($j=0;$j<mysql_num_rows($wynik);$j++) {
  19. $model = mysql_fetch_row($wynik);
  20. $tmodele[$i][$j]=$model[0];
  21. }
  22. }
  23. mysql_close($conn);
  24.  
  25. //--formularz i pole 1 listy
  26. echo '<form name="form1" action="index.php" method="get">
  27. <select name="lista1" onChange="zmien(this.options.selectedIndex)" class="kategoria">';
  28.  
  29. foreach ($tmarki as $linia) echo "<option>$linia</option>";
  30.  
  31. //--formularz i pole 2 listy
  32. echo '</select>
  33. <select name="lista2"></select>
  34. <input type="submit" value="Sprzęt dostępny w">
  35. </form>';
  36.  
  37. //--przepisanie danych z bazy do pol select option
  38. echo '
  39. <script language="javascript" type="text/javascript">
  40. <!--
  41. function zmien(wybor) {
  42. l2=document.form1.lista2;
  43. for (i=l2.options.length;i>=0;i--) l2.options[i]=null;
  44. for (i=0;i<opcje[wybor].length;i++)
  45. l2.options[i]=new Option(opcje[wybor][i].value,opcje[wybor][i].text);
  46. }
  47.  
  48. ile_lista1=document.form1.lista1.options.length;
  49. opcje=new Array(ile_lista1)
  50. for (i=0;i<ile_lista1;i++) opcje[i]=new Array();
  51. ';
  52.  
  53. for ($i=0;$i<count($tmodele);$i++) {
  54. for ($j=0;$j<count($tmodele[$i]);$j++) {
  55. echo "opcje[$i][$j]=new Option(\"";
  56. echo $tmodele[$i][$j]."\",\"".$tmodele[$i][$j]."\");\n";
  57. }
  58. }
  59.  
  60. echo 'zmien(0);
  61. //-->
  62. </script>';
  63. ?>
  64.  
  65.  
  66. <!-- wypis zapytan --!>
  67.  
  68. <?
  69. $marka = $_GET["lista1"];
  70. $model = $_GET["lista2"];
  71.  
  72. if ($marka<>"" and $model<>""){
  73. $sql="SELECT rok FROM auta WHERE marka='$marka' and model='$model';";
  74.  
  75. include ("config.php");
  76. include ("polaczenie.php");
  77. //$baza = mysql_connect("localhost", "admin_bg", "admin_bg");
  78. //mysql_select_db("baza1");
  79. $wynik = mysql_query($sql);
  80. mysql_close($conn);
  81.  
  82. $wierszy = mysql_num_rows($wynik);
  83. $pol = mysql_num_fields($wynik);
  84.  
  85. for ($i=0;$i<$wierszy;$i++){
  86. $wiersz = mysql_fetch_row($wynik);
  87. for ($j=0;$j<$pol;$j++) echo $wiersz[$j]." ";
  88. echo "<br />";
  89. }
  90. }
  91.  
  92. ?>