![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 15.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Tworzę formularz zgłoszeniowy, w którym jest kilka list zależnych od siebie. O ile zrobienie zależnej listy od poprzedniej mi jakoś wyszło to nie wiem jak zrobić żeby kolejna lista była zależna nie tylko od poprzedniej ale również od tej wcześniejszej czyli w wielkim skrócie: - lista A (dane pobierane z bazy mysql) - kategoria główna - lista B zależna od A (dane pobierane z bazy mysql) - kategoria wiekowa - lista C zależna od A i B (dane pobierane z bazy mysql) - kategoria wagowa To co zrobiłem: wybieram z listy A, pojawia się lista B już z ograniczonym wyborem co do wieku, po wybraniu z listy wieku pojawia sie lista C z ograniczonym wyborem co do wagi ale już bez różnicy na kategorię z listy A Teraz trochę kodu Tabele w bazie danych: CODE tabela1: id, id_kategoria, id_wiek, id_waga tabela2: id, wiek tabela3: id, waga plik php1 CODE <form action=".........." method="post" id="formularzid"> Nazwisko: <input type="text" name="nazwisko" id="nazwisko"></BR> Imię: <input type="text" name="imie" id="imie"></BR> Konkurencja: <select name="id_kategoria" id="id_kategoria" onchange="showUser(this.value)"> <option value="">Wybierz konkurencję</option> ... pobieranie listy z bazy danych <option value="1">kategoria1</option> ...... <option value="5">kategoria5</option> </select> <div id="txtDane1"></div> <div id="txtDane2"></div> <div id="txtDane3"></div> <input type="submit" value="Dodaj"> </form> skrypt CODE function showUser(str) { if (str=="") { document.getElementById("txtDane1").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtDane1").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","zawody.php?q="+str,true); xmlhttp.send(); } plik zawody.php CODE <?php $q = intval($_GET['q']); $con = mysql_connect('..............'); if (!$con) { die('Could not connect: ' . mysql_error($con)); } mysql_select_db('......',$con); $sql="SELECT * FROM tabela2 WHERE id_kategoria = '".$q."'"; $result = mysql_query($sql); echo "<select name=\"id_wiek\" id=\"id_wiek\" onchange=\"showUser2(this.value)\"> <option value=\"\">Wybierz wiek</option>"; while($row = mysql_fetch_array($result)) { echo "<option value="; echo $row['id_wiek']; echo ">"; echo $row2['wiek']; echo "</option>"; } echo "</select>"; mysql_close($con); ?> Funkcja showUser2 wygląda tak samo jak funkcja showUser z małymi zmianami, zamiast txtDane1 jest txtDane2, zamiast zawody.php?q jest wiek.php?q2. Plik wiek.php to też prawie to samo co zawody.php tylko zamiast $q = intval($_GET['q']); używam $q2 = intval($_GET['q2']); Wiem, że muszę jakoś pobrać "value" z listy kategorii i zmodyfikować funkcję showUser2 by przekazała tą dodatkową wartość do pliku wiek.php ale nie wiem jak. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 00:46 |