Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][MySQL][PHP] problem z trzecim selectem, zależne listy rozwijane select, nie wyświetla poprawnie 3go pola
Radson
post 18.05.2010, 21:26:44
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 18.05.2010

Ostrzeżenie: (0%)
-----


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


Ten post edytował Radson 19.05.2010, 07:13:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
piotrooo89
post 18.05.2010, 21:56:28
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




proszę o dodanie odpowiedniego bbcode.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:07