Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][PHP]Problem z wyświetlaniem wyników zapytania z dwóch skryptów
trzewa
post 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();
}

}

}

Go to the top of the page
+Quote Post
trueblue
post 29.05.2014, 19:22:11
Post #2





Grupa: Zarejestrowani
Postów: 6 761
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.


--------------------
Go to the top of the page
+Quote Post
trzewa
post 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?
Go to the top of the page
+Quote Post
trueblue
post 29.05.2014, 21:14:56
Post #4





Grupa: Zarejestrowani
Postów: 6 761
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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 02:58