Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP] problem z trzecim selectem
Forum PHP.pl > Forum > Przedszkole
Radson
Witam
Mam problem ze skryptem a dokładnie z trzecim selctem.
Gdy wybieram markę jest ok. wyświetla mi wszystkie marki z mojej bazy danych.
Wybieram Audi to wyświetla mi wszystkie modele Audi z mojej bazy danych aleeeee
rok produkcji niezależnie od tego czy zostawię na Audi czy zmienię na inna markę wyświetla
rok produkcji tylko ostatniego modelu danej Marki.

Poniżej jest ten skrypt. Proszę o jakieś rady jak to zmienić żeby było Ok.
  1. <?
  2. //---polaczenie z baza danych
  3. $baza = mysql_connect("localhost", "root", "vertrigo");
  4. mysql_select_db("radglass");
  5.  
  6. //---zapytanie o marki
  7. $marki = mysql_query("SELECT DISTINCT(marka) FROM szyba_czolowa ORDER BY ISNULL(marka), marka ASC;");
  8.  
  9.  
  10. //--w petli marki dodawane sa do tablicy $tmarki
  11. for ($i=0;$i<mysql_num_rows($marki);$i++) {
  12. $marka = mysql_fetch_row($marki);
  13. $tmarki[]=$marka[0];
  14.  
  15. //--na podstawie marki pobierane sa modele tej marki i tez w petli dodawane sa do tablicy dwuwymiarowej
  16. $wynik = mysql_query("SELECT DISTINCT(model)FROM szyba_czolowa WHERE marka='$marka[0]';");
  17.  
  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. //--na podstawie modelu pobierane sa roczniki wybranego modelu i tez w petli dodawane sa do tablicy dwuwymiarowej
  24. $wynik2 = mysql_query("SELECT DISTINCT(rok_produkcji) FROM szyba_czolowa WHERE model='$model[0]';");
  25. for ($j=0;$j<mysql_num_rows($wynik2);$j++) {
  26. $rok_produkcji = mysql_fetch_row($wynik2);
  27. $trok_produkcji[$i][$j] = $rok_produkcji[0];
  28.  
  29.  
  30. }
  31. }
  32.  
  33.  
  34. mysql_close($baza);
  35.  
  36. //--formularz i pole 1 listy
  37. echo '<form name="form1" action="szybyczolowe.php" method="get">
  38. <table>
  39. <tr><td width="20">Marka:</td><td>
  40. <select name="marka" onChange="zmien(this.options.selectedIndex)"
  41. style="width:150px;"
  42.  
  43. >';
  44.  
  45.  
  46.  
  47. foreach ($tmarki as $linia) echo "<option>$linia</option>";
  48.  
  49. //--formularz i pole 2 listy
  50. echo '</select></td></tr>
  51. <tr><td>Model:</td><td><select name="model">style="width:150px;"></select></select></td></tr>
  52. <tr><td>Rok_produkcji:</td><td><select name="rok_produkcji" style="width:150px;"></select></td></tr>
  53. <tr><td colspan="2"><input type="submit" value="Znajdź szybę czołową" /></td></tr>
  54. </table>
  55. </form>';
  56.  
  57. //--przepisanie danych z bazy do pol select option
  58. <script language="javascript" type="text/javascript"
  59. <!--
  60.  
  61. function pokaz() {
  62. l2=document.form1.model;
  63. l3=document.form1.rok_produkcji;
  64. alert(l2.options[l2.selectedIndex].value);
  65. alert(l3.options[l3.selectedIndex].value);
  66. }
  67.  
  68.  
  69. function zmien(wybor) {
  70. l2=document.form1.model;
  71. for (i=l2.options.length;i>=0;i--) l2.options[i]=null;
  72. for (i=0;i<opcje[wybor].length;i++)
  73. l2.options[i]=new Option(opcje[wybor][i].value,opcje[wybor][i].text);
  74.  
  75. l3=document.form1.rok_produkcji;
  76. for (i=l3.options.length;i>=0;i--) l3.options[i]=null;
  77. for (i=0;i<opcje2[wybor].length;i++)
  78. l3.options[i]=new Option(opcje2[wybor][i].value,opcje2[wybor][i].text);
  79.  
  80.  
  81. }
  82.  
  83. ile_marka=document.form1.marka.options.length;
  84. opcje=new Array(ile_marka)
  85. for (i=0;i<ile_marka;i++) opcje[i]=new Array();
  86.  
  87. ile_model=document.form1.marka.options.length;
  88. opcje2=new Array(ile_model)
  89. for (i=0;i<ile_model;i++) opcje2[i]=new Array();
  90.  
  91.  
  92.  
  93. ';
  94.  
  95. for ($i=0;$i<count($tmodele);$i++) {
  96. for ($j=0;$j<count($tmodele[$i]);$j++) {
  97.  
  98. echo "opcje[$i][$j]=new Option(\"";
  99. echo $tmodele[$i][$j]."\",\"".$tmodele[$i][$j]."\");\n";
  100. }
  101. }
  102.  
  103. for ($i=0;$i<count($trok_produkcji);$i++) {
  104. for ($j=0;$j<count($trok_produkcji[$i]);$j++) {
  105.  
  106. echo "opcje2[$i][$j]=new Option(\"";
  107. echo $trok_produkcji[$i][$j]."\",\"".$trok_produkcji[$i][$j]."\");\n";
  108. }
  109. }
  110. echo 'zmien(0);
  111. // -->
  112. </script>';
  113. ?>
piotrooo89
proszę o dodanie odpowiedniego bbcode.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.