![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
Mam sobie 3 tabele A, B i C
-każda ma po dwa pola, id i nazwa + ewentualny id tabeli nadrzędnej -każda kolejna jest zbiorem elementów poprzedniej, czyli są połaczone relacjami - chyba tak to mozna nazwać. Mam też plik z trzema polami typu select odpowiadającymi każdej tabeli Do pierwszego selecta ładuję wszystkie idA i odpowiadające im nazwy I teraz chciał bym zrobić tak, żeby po wybraniu jakiegos elementu z pierwszego selecta wykonane zostało zapytanie zwracające do drugiego pola select idB i ich nazwy Tu z kolei po wybraniu elementu kolejne zapytanie i wypełnienie trzeciego selecta otrzymanymi rekordami. Cytat Przykład: idA, nazwa 0, a 1, b 2 , c idB, idA, nazwa 0, 0, a 1, 0, b 2, 1, c idC, idB, idA, nazwa 0, 2, 0, a 1, 2, 0, b 2, 1, 1, c w select1 wybieram pole 0 (a), to powinno mi pobrać automatycznie z bazy rekordy z tabeli B gdzie idA=0, czyli tu idB=0 i 1 i wpisać je do pola select2. Z drugiego selecta wybieram dalej np. pole 1 a stosowne zapytanie zwraca mi w trzecim polu select odpowiednie rekordy z tabeli C, tu był by to rekord idC=2 Jak cos takiego zrobić? Znalazłem coś takiego http://www.kess.snug.pl/?sid=10&pid=30 ale problem w tym że te 3 selecty mam w większym formularzu z innymi polami input, textarea itp. Jak więc to połączyć by dodać taką funkcjonalność do formulrza typu: Cytat <form ...> Jak wysyłam ten formularz to ma mi dodać wszystkie wartości do bazy - więc jak tu wcisnąć obsługę tych selectów?<input type="text" ...> <input type="text" ...> <input type="text" ...> <select name="A" size="1"> dane pierwszego selecta z bazy </select> <select name="B" size="1"> dane drugiego selecta z bazy na podstawie zawartości pierwszego </select> <select name="C" size="1"> dane trzeciego selecta z bazy na podstawie zawartości drugiego </select> <input type="text" ...> <input type="text" ...> ... </form> Zagnieżdżanie formularzy czy jak? Pomocy! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
moj index
Kod <script type="text/javascript" src="ajax.js"></script> <script type="text/javascript"> var ajax = new sack(); function getml(sel) { var cc = sel.options[sel.selectedIndex].value; document.getElementById('miasto').options.length=0; if(cc.length>0){ ajax.requestFile = 'getm.php?cc='+cc; ajax.onCompletion = makem; ajax.runAJAX(); } } function makem() { var obj = document.getElementById('miasto'); eval(ajax.response); } function reset_obj(obj){ if(obj!= null && obj.hasChildNodes()) { for(var i=0; i <obj.childNodes.length;i++) obj.removeChild(obj.firstChild); } } </script> <form action=""> <select id="kraj" name="kraj" size="1" onchange="getml(this)"> <option value="">--</option> <?php $conn = mysql_connect('mysql2.yoyo.pl','db698643','****'); $db = mysql_select_db('db698643',$conn); if($sql = mysql_query("SELECT * FROM kraj ORDER BY nazwa ASC",$conn)) while ($rekord = mysql_fetch_array($sql)){ if($rekord['nazwa']=='Polska') echo '<option value="'.$rekord['id'].'" selected>'.$rekord['nazwa'].'</option>'; else echo '<option value="'.$rekord['id'].'">'.$rekord['nazwa'].'</option>'; } mysql_close($conn); ?> </select> <select id="miasto" name="miasto" size="1"> <option value="">Wybierz miasto</option> </select> </form> a to getm.php Kod <?PHP header('Content-Type: text/html; charset=iso-8859-2'); define('HOST', 'mysql2.yoyo.pl'); define('USER', 'db698643'); define('PASS', '*****'); define('DBASE', 'db698643'); if(isset($_GET['cc'])){ $k=htmlspecialchars($_GET['cc']); $conn = mysql_connect('mysql2.yoyo.pl','db698643','*****'); $db = mysql_select_db('db698643',$conn); echo "obj.options[obj.options.length] = new Option('--','');"; if($sql = mysql_query("SELECT * FROM miasto WHERE kraj='$k' ORDER BY nazwa ASC",$conn)) while ($rekord = mysql_fetch_array($sql)){ echo '<option value="'.$rekord['id'].'">'.$rekord['nazwa'].'</option>'; echo "obj.options[obj.options.length] = new Option('".$rekord['nazwa']."','".$rekord['id']."');"; } mysql_close($conn); } ?> i jeszcze plik ajax, ale wątpie zeby tam był błąd a to struktura tabel Kod CREATE TABLE kraj ( id int(11) unsigned NOT NULL auto_increment, nazwa varchar(255) NOT NULL, PRIMARY KEY (id), UNIQUE KEY nazwa (nazwa) ); CREATE TABLE miasto ( id int(11) unsigned NOT NULL auto_increment, nazwa varchar(255) NOT NULL, kraj int(11) NOT NULL, PRIMARY KEY (id) W pierwszym polu select są nazwy krajów, drugie jest puste, skrypt chyba lub raczej polega na numerze miasta przyporządkowanym do id w kraju, ale nic się nie wyświetla, gdzie jest błąd? prosze o pomoc, pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 09:40 |