Chciałem aby po wybraniu w grupie jakiejś konkretnej grupy w polu podgrupy ukazały mi się jej podgrupy ,to juz udało mi się zrobić, jednak nie jestem w stanie sobie poradzić z tym żeby przy wyborze pola wszystkie w selectcie podgrupy pokazały się wszystkie podgrupy. Oto kod odpowiadający za to (sorki za dlugość)
<?php //////////////// ========= O B S Ł U G A W Y S Z U K I W A R K I //////// /// === option: grupa /// === option: podgrupa /// === option: producent /// === input: słowo kluczowe echo" <form style="position: absolute; top: 0;" name="wyszukiwarka" action="index.php" method="GET"> <input style="position=absolute" type="hidden" name="page" value="szukaj"> "; // pobieramy do tablicy dane wszystkich grup // grp[i][grupa] --> kod grupy // grp[i][nazwa] --> nazwa grupy // grp[i][ilpgp] --> ilość podgrup w danej grupie $grp[$i]["grupa"] = 0; // iniciacja tablicy $pyt = "SELECT MAX(id) as maxGrp FROM " ._dbProducts ."." ._dbtGroup .";"; $maxGrp = $rekord["maxGrp"]; for($i = 1; $i <= $maxGrp; $i++) { $pyt = "SELECT * FROM " ._dbProducts ."." ._dbtGroup ." WHERE id = " .$i; $grp[$i]["id"] = $rekord["id"]; $grp[$i]["grupa"] = $rekord["grupa"]; $grp[$i]["nazwa"] = $rekord["nazwa"]; $grp[$i]["ilpgp"] = $rekord["iloscpgp"]; } // pobieramy do tablicy dane wszystkich podgrup // subGrp[i][id] --------> id // subGrp[i][grupa] -----> kod grupy // subGrp[i][podgrupa] --> kod podgrupy // subGrp[i][nazwa] -----> nazwa podgrupy // subGrp[i][ilosc] -----> ilość produktów w podgrupie for($i = 1; $i <= $maxGrp; $i++) { for($j = 1; $j <= $grp[$i]["ilpgp"]; $j++) { $subGrupa = 100*$grp[$i]["grupa"] + $j; $pyt = "SELECT grupa, podgrupa, nazwa FROM " ._dbProducts ."." ._dbtSubGroup ." WHERE podgrupa = " .$subGrupa .";"; $subGrp[$i][$j]["grupa"] = $rekord["grupa"]; $subGrp[$i][$j]["podgrupa"] = $rekord["podgrupa"]; $subGrp[$i][$j]["nazwa"] = $rekord["nazwa"]; } } //// wrzucamy do option z grupy wartość value=grupa i wyświetlamy nazwe grupy // echo" <select name="Wgrupa" class="wyszukiwarka_grup" size="1" onchange="actualGroup(this.options.selectedIndex-1)">"; // wpisujemy grupy do pola option, ustawiając na indexie 1 for($i = 1; $i <= $maxGrp; $i++) { } echo" </select> <select name="Wproducent" class="wyszukiwarka_prod"> <option value="-1">wszyscy</option>"; $pyt = "SELECT nazwa FROM " ._dbProducts ."." ._dbtProducents .";"; { } echo " </select> <select name="WsubGrupa" class="wyszukiwarka_podg" size="1"> <option value="-1">wszystkie</option> </select> "; // podgrupa zawiera 'puste'/obojętne pole o wartości -1 // funkcja dynamicznie zmieniająca zawartość pola podgrup w zależności od pola gru
py echo " <script> <!-- var groups = document.wyszukiwarka.Wgrupa.options.length var group = new Array(groups) for (i=0; i<groups; i++) group[i]=new Array() "; // wypisujemy kolejno wszystkie nazwy podgrup for($i = 1; $i <= $maxGrp; $i++) { for($j = 1; $j <= $grp[$i]["ilpgp"]; $j++) { echo "n group[" .($i-1) ."][" .($j-1) ."] = new Option("" .$subGrp[$i][$j]["nazwa"] ."", " .$subGrp[$i][$j]["podgrupa"] .");"; } } echo" var temp=document.wyszukiwarka.WsubGrupa function actualGroup(x){ if(x != -1) { for (m=temp.options.length;m>0;m--) temp.options[m]=null; temp.options[0]=new Option('wszystkie', -1); for (i=1;i<=group[x].length;i++) { temp.options[i]=new Option(group[x][i-1].text,group[x][i-1].value) } temp.options[0].selected=true; } } //--> </script> "; echo" <input class="slowo_kluczowe" type="text" name="Wslowo" value="" /> <button style="left: 690px; top: 205px;" class="submit" type="submit"> </button> </form> "; ?>
W 132 linijce dorzuciłem fragment:
<?php else { for (m=temp.options.length;m>0;m--) temp.options[m]=null; temp.options[0]=new Option('wszystkie', -1); for (j=0; j< groups; j++) { for (i=1;i<=group[j].length;i++) { temp.options[i]=new Option(group[j][i-1].text,group[j][i-1].value) } } temp.options[0].selected=true; } ?>
Ale nic to nie dało(wszystko działało tak jakby go nie bylo).
Z góry dziekuje za pomoc
Pozdrawiam,
Smajster