Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] wywolanie funkcji JS na stronie zaladowanej
Forum PHP.pl > Forum > XML, AJAX
PolKolo
Na stronie głównej np: glowna.php jest funkcja javascript WywolajAkcje() która wywołana powoduje wczytanie do warstwy AJAX,'em strony powiedzmy wczytana.php

Na stronie wczytanej jest kod php który realizuje jakaś operację np. na bazie danych na po której zakończeniu powinno nastąpić wywołanie funkcji ze strony nadrzędnej glowna.php w celu ponownego uruchomienia cyklu. Próbowałem z kodem:

Kod
<body onload="WywolajAkcje()">


w kodzie strony wczytana.php, ale to nie działa.

Dodam jeszcze, że jak w kodzie strony wczytana.php będzie button:
Kod
<input id="mbut" onclick="javascript: WywolajAkcje()" type="button" value="wykonaj">

i zostanie on użyty jest właśnie uruchamiana przedmiotowa funkcja. Formułując inaczej problem jak można by zasymulować jego kliknięcie ?

Zwracam się o pomóc jaka to rozwiązać?



Pozdrawiam

Anatejms
hmm jezeli dobrze zrozumialem to powinno ci bez problemu działać. Jezeli z php wyswietlasz sobie <body onload="WywolajAkcje()">
mozliwe ze po prostu przegladraka jeszcze nie zkonczyla wyswietlania strony z php wiec wyaolanie ajaxowe sie gdziez gubi mozesz zrobic 1-2 sekundy wstrzymania skryptu aby cala stronka sie wczytala. A czemu nie obslugujesz calej strony js i tylko ajaxem wywolujesz php? wiecej roboty ale na dłuższa mete wydajniejsze smile.gif
PolKolo
Ale nie działa. Kod php w tym momencie jest nie istotny, bo nawet jak dam ma stronie

<?
// wczytana.php
sleep(1);
echo time();
?>
<body onload="WywolajAkcje()">

to też nie działa dopiero jak kliknę na button:

<input id="mbut" onclick="java script: WywolajAkcje()" type="button" value="wykonaj">

to funkcja jest wywołana;

Anatejms
srobuj zrobic tak
<?
cos tam php
?>

<body onload="weit=setTimeout('wywolajAkcje()', 2000) ">

a pozniej w funkcji wywolajAkcje();
na poczatku daj clearTimeout('weit')
jak to nie zadziała to juz nie wiem tongue.gif
PolKolo
Cytat(Anatejms @ 20.12.2007, 20:51:03 ) *
jak to nie zadziała to juz nie wiem
No właśinie NIE wiesz!
onload=" weit = setTimeout <Przestań zmyślać kody, bo widzę, że się nie znasz na tym wiec po co odpisujesz ?

Problem jest taki, że w ogóle onload dla żadnej funkcji nie działa na stronie wczytywanej AJAX'em...

[/size]
nospor
skoro chcesz wywolac akcje ponownie po jej zakonczeniu to uzyj onsuccess lub innych podbnych, ktore są dołączane do kazdego libu obslugi ajaxa. A jesli nie uzywasz libu - to zacznij smile.gif
PolKolo
Właśnie tak zacząłem robić, w kodzie wczytana.php jako pierwszy znak daje 1 albo 0 i pobierając obj.responseText wyciągam pierwszy znak i sprawdzam w if jak jest 1 funkcja wywołuje samą siebie ponownie smile.gif

Anatejms
Cytat(PolKolo @ 20.12.2007, 21:33:52 ) *
No właśinie NIE wiesz!
onload=" weit = setTimeout <Przestań zmyślać kody, bo widzę, że się nie znasz na tym wiec po co odpisujesz ?

Problem jest taki, że w ogóle onload dla żadnej funkcji nie działa na stronie wczytywanej AJAX'em...

[/size]



zmyślasz to ty jak sie nie znasz to nie mów że ktoś kto chce ci pomóc sie nie zna! poczytaj sobie może sie czegoś nauczysz
http://developer.mozilla.org/pl/docs/DOM:window.setTimeout
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.