[AJAX][PHP]Problem z wyświetlaniem wyników zapytania z dwóch skryptów |
[AJAX][PHP]Problem z wyświetlaniem wyników zapytania z dwóch skryptów |
29.05.2014, 19:04:41
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 29.05.2014 Ostrzeżenie: (0%) |
Cześć,
mam następujący problem. Nie chcą mi się wczytać po ajaxe dwa skrypty gat.js i szukaj.js. Jeśli wykomentuje dostęp do któregokolwiek w index.html ten nieskomentowany wczytuje się bez problemu, natomiast jak pisałem wcześniej zainicjowane razem, jeden wczytuje po ajaxe drugi przechodzi na kolejną stronę wybierając opcje bez ajaksa. Już nie wiem o co chodzi, gdzie jest błąd skoro uruchamiane same/osobno działają bez problemu. Poniżej wklejam kod pliku index.html, gat.js i szukaj.js. Proszę o pomoc! index.html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250" /> <title>Katalog Filmďż˝w</title> </head> <body> <script src="login.php" type="text/PHP"></script> <script src="ajax.js" type="text/javascript"></script> <script src="gat.js" type="text/javascript"></script> <script src="szukaj.js" type="text/javascript"></script> <style type="text/css" media="all">@import "style.css";</style> <div style="margin-top: 2em; font-family: arial; font-size: 0.8em; border-top:1px solid gray; padding: 4px;"> </div> <div class="gat"> <p>Wybierz gatunek i kliknij 'Dalej', aby przeglďż˝daďż˝ filmy z tego gatunku.</p> <form action="gat_wyniki.php" method="get" id="index"> <p> <select id="idg" name="idg"> <option value="1">komedia</option> <option value="2">sensacyjny</option> <option value="3">thriler</option> <option value="4">przygodowy</option> <option value="5">horror</option> <option value="6">melodramat</option> <option value="7">biograficzny</option> <option value="8">wojenny</option> <option value="9">sci-fi</option> <option value="10">dramat</option> </select> <input name="dalej" type="submit" value="Dalej" /> </p> </form> </div> <div class="szukaj"> <p>Wprowadďż˝ tytuďż˝ lub jego cz�� i kliknij 'Szukaj', aby znale�� film.</p> <form action="szukaj_wyniki.php" method="get" id="index1"> <p><input name="tytul" id="tytul" type="text" size="30" maxlength="50" /> <input name="szukaj" type="submit" value="Szukaj" /> </p> </form> </div> <div id="wyniki"></div> <div id="wyniki1"></div> </body> </html> gat.js: window.onload = init; function init() { var ajax = getXMLHttpRequestObject(); if (ajax) { if (document.getElementById('wyniki')) { document.getElementById('index').onsubmit = function() { var idg = document.getElementById('idg').value; ajax.open('get', 'gat_wyniki_ajax.php?idg=' + encodeURIComponent(idg)); ajax.onreadystatechange = function() { handleResponse(ajax); } ajax.send(null); return false; } } } } function handleResponse(ajax) { if (ajax.readyState == 4) { if ((ajax.status == 200) || (ajax.status == 304) ) { var wyniki = document.getElementById('wyniki'); wyniki.innerHTML = ajax.responseText; wyniki.style.display = 'block'; } else { document.getElementById('index').submit(); } } } szukaj.js: window.onload = init; function init() { var ajax = getXMLHttpRequestObject(); if (ajax) { if (document.getElementById('wyniki')) { document.getElementById('index1').onsubmit = function() { var ids = document.getElementById('tytul').value; ajax.open('get', 'szukaj_wyniki_ajax.php?tytul=' + encodeURIComponent(ids)); ajax.onreadystatechange = function() { handleResponse(ajax); } ajax.send(null); return false; } } } } function handleResponse(ajax) { if (ajax.readyState == 4) { if ((ajax.status == 200) || (ajax.status == 304) ) { var wyniki = document.getElementById('wyniki'); wyniki.innerHTML = ajax.responseText; wyniki.style.display = 'block'; } else { document.getElementById('index1').submit(); } } } |
|
|
29.05.2014, 19:22:11
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 762 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Masz dwie funkcje o nazwie "init" i obydwie przypisujesz (w właściwie jedną, bo druga nadpisuje) do zdarzenia onLoad.
-------------------- |
|
|
29.05.2014, 19:38:34
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 29.05.2014 Ostrzeżenie: (0%) |
Ale zmiana nazwy na np: init2 nie rozwiązuje tematu.
Co powinienem zrobić żeby oby dwa skrypty działały? |
|
|
29.05.2014, 21:14:56
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 762 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Oczywiście, że nie, bo jak napisałem nadpisujesz zdarzenie onLoad.
Użyj Google: https://www.google.pl/search?q=window+onloa...tiple+functions Warto też zapoznać się z metodami addEventListener i attachEvent. -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 23.05.2024 - 15:09 |