![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
witam. mam 2 pola select a w nim maja znajdować sie kraje oraz ich miasta. wszystkie dane maja byc pobierane z bazy danych z 2 tabel miasto i kraj. Czyli select pierwszy zależny od drugiego.
Mam 3 pliki index.html Kod <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> <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); } </script> </head> <body> <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> </body> </html> getm.php Kod getm.php <?PHP if(isset($_GET['cc'])){ $k=htmlspecialchars($_GET['cc']); $conn = mysql_connect('mysql2.yoyo.pl','db698643','****'); $db = mysql_select_db('db698643',$conn); echo '<option value="">--</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>'; } mysql_close($conn); } ?> oraz dołączony plik ajax.js 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) ); Pierwszy Select wyświetla mi kraje z bazy, lecz drugi jest pusty. Czy w kodzie jest błąd? prosze o pomoc, pozdrawiam Ten post edytował bbula 19.03.2009, 23:40:05 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 1 Dołączył: 14.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
bez przygladania się zbytnio zorbilbym tak ze - sprawdzilbym jak dziala getm.php?cc=jakisnumer
i jeśli coś wyświtla to dobrze i dalej nie bardzo jestem ekspert od JS i ajaksa ale gdzie dokładnie jest "wstawianie do selecta[miasta]"? może jeszcze powinno być: ajax.onCompletion = makem(); ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod getm.php?cc=numer w ten sposób wyświetlają mi sie miasta, ale nie w polu select a ta linijka gdzie ma być? Cytat ajax.onCompletion = makem();
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 1 Dołączył: 14.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja naprawdę jestem kiepski w tym temacie... doczytałem i wiem że... NIE STOSUJ SIĘ DO MOICH RAD bo jestem w błędzie, za co cie przepraszam,ale pokombunujję dalej:
function makem() { var obj = document.getElementById('miasto'); eval(ajax.response); } wywolujesz funkcję oncomplite i dajesz eval(ajax.response) a element ajax nie jest chyba elementem globalnym wiec to najprawdopodobniej bedzie twoj problem a gdybyś tak zrobił: ajax.onCompletion = function(req) ajax.runAJAX();{ Ten post edytował tmgryf 8.03.2009, 18:39:07 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
uruchamiałem strone przez Mozille na Firebugu. Wybieram kraj (pobiera mi z bazy dane), lecz pole miasta jest puste.
Mam taki błąd: Cytat missing ; before statement Co ktoś wie jak sie z tym uporać? Ten post edytował bbula 19.03.2009, 23:50:44 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dodaj brakujący średnik na końcu linii;
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Błąd jest w pliku ajax.js w lini 43, firebug zwraca taki komunikat:
missing ; before statement createAJAX()()ajax.js (wiersz 43) sack(undefined)ajax.js (wiersz 192) (?)()page (wiersz 6) < option value="">--</option><option valu...</option><option value="34">LV</option>\n Ten plik jest z gotowego skryptu. Tam raczej nie powinno być błędu...? Ten post edytował bbula 20.03.2009, 12:02:33 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:31 |