Witam.
Mam problem ze skryptem, otóż gdy w bazie mam jeden model danej marki i kilka przedziałów rocznikowych wszystko działa jak należy, jednak gdy dodam następny model wraz z rocznikiem na liście wyświetla się tylko data tego ostatniego, obojętnie jaki model wybiorę.

Baza danych wygląda tak:
+---------------+---------+----------+
|___marka___|_model_ |_rocznik_|
+---------------+---------+----------+
|_Alfa Romeo_|Alfa 33_ |_84 - 90_|
|_Alfa Romeo_|Alfa 33_ |_90 - 95_| Do tego momentu jest dobrze
|_Alfa Romeo_|Alfa 75_ |_85 - 92_| I tu pojawia się błąd, jak na liście rozwijanej wybiorę Alfa 33 to rocznik mi pokazuje tylko i +---------------+---------+----------+ wyłącznie przypisany do Alfy 75

Może ktoś spojrzeć na to bo mi już się w oczach miesza wszystko

  1. <?
  2.  
  3. $marki = mysql_query("SELECT DISTINCT(marka) FROM wymiary ORDER BY ISNULL(marka), marka ASC;");
  4.  
  5. for ($i=0;$i<mysql_num_rows($marki);$i++) {
  6.  $marka = mysql_fetch_row($marki);
  7.  $tmarki[]=$marka[0];
  8.  $wynik = mysql_query("SELECT DISTINCT(model)
  9.    FROM wymiary WHERE marka='$marka[0]';");
  10.  for ($j=0;$j<mysql_num_rows($wynik);$j++) {
  11.    $model = mysql_fetch_row($wynik);
  12.    $tmodele[$i][$j] = $model[0];
  13.  }
  14.  $wynik2 = mysql_query("SELECT DISTINCT(rocznik)
  15.    FROM wymiary WHERE model='$model[0]';");
  16.  for ($j=0;$j<mysql_num_rows($wynik2);$j++) {
  17.    $rocznik = mysql_fetch_row($wynik2);
  18.    $troczniki[$i][$j] = $rocznik[0];
  19.  }
  20.  
  21. }
  22. mysql_close($baza);
  23.  
  24.  
  25. echo '<form name="form1" action="pokaz.php" method="post">
  26. <table>
  27. <tr><td width="20">Marka:</td><td><select name="marka" onChange="zmien(this.options.selectedIndex)" style="width:150px;">';
  28.  
  29. foreach ($tmarki as $linia) echo "<option>$linia</option>";
  30.  
  31. echo '</select></td></tr>
  32. <tr><td>Model:</td><td><select name="model" style="width:150px;"></select></td></tr>
  33. <tr><td>Rocznik:</td><td><select name="rocznik" style="width:150px;"></select></td></tr>
  34. <tr><td colspan="2"><input type="submit" value="Znajdź wycieraczki" /></td></tr>
  35. </table>
  36. </form>';
  37.  
  38. <script language="javascript" type="text/javascript">
  39. <!--
  40. function pokaz() {
  41.  l2=document.form1.model;
  42.  l3=document.form1.rocznik;
  43.  alert(l2.options[l2.selectedIndex].value);
  44.  alert(l3.options[l3.selectedIndex].value);
  45. }
  46.  
  47. function zmien(wybor) {
  48.  l2=document.form1.model;
  49.  for (i=l2.options.length;i>=0;i--) l2.options[i]=null;
  50.  for (i=0;i<opcje[wybor].length;i++)
  51.    l2.options[i]=new Option(opcje[wybor][i].value,opcje[wybor][i].text);
  52.    
  53.  l3=document.form1.rocznik;
  54.  for (i=l3.options.length;i>=0;i--) l3.options[i]=null;
  55.  for (i=0;i<opcje2[wybor].length;i++)
  56.    l3.options[i]=new Option(opcje2[wybor][i].value,opcje2[wybor][i].text);
  57.  
  58. }
  59.  
  60. ile_marka=document.form1.marka.options.length;
  61. opcje=new Array(ile_marka)
  62. for (i=0;i<ile_marka;i++) opcje[i]=new Array();
  63.  
  64. ile_model=document.form1.marka.options.length;
  65. opcje2=new Array(ile_model)
  66. for (i=0;i<ile_model;i++) opcje2[i]=new Array();
  67.  
  68. ';
  69.  
  70. for ($i=0;$i<count($tmodele);$i++) {
  71.  for ($j=0;$j<count($tmodele[$i]);$j++) {
  72.    echo "opcje[$i][$j]=new Option(\"";
  73.    echo $tmodele[$i][$j]."\",\"".$tmodele[$i][$j]."\");\n";
  74.  }
  75. }
  76.  
  77. for ($i=0;$i<count($troczniki);$i++) {
  78.  for ($j=0;$j<count($troczniki[$i]);$j++) {
  79.    echo "opcje2[$i][$j]=new Option(\"";
  80.    echo $troczniki[$i][$j]."\",\"".$troczniki[$i][$j]."\");\n";
  81.  }
  82. }
  83.  
  84.  
  85. echo 'zmien(0);
  86. // -->
  87. </script>';
  88. ?>