Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX] wywolanie funkcji JS na stronie zaladowanej, ajaxem do strony glownej
PolKolo
post 20.12.2007, 17:18:13
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 14.12.2007

Ostrzeżenie: (0%)
-----


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



Ten post edytował PolKolo 20.12.2007, 17:33:53
Go to the top of the page
+Quote Post
Anatejms
post 20.12.2007, 17:43:48
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 1
Dołączył: 19.12.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
PolKolo
post 20.12.2007, 18:16:23
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 14.12.2007

Ostrzeżenie: (0%)
-----


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;



Ten post edytował PolKolo 20.12.2007, 18:17:28
Go to the top of the page
+Quote Post
Anatejms
post 20.12.2007, 20:51:03
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 1
Dołączył: 19.12.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
PolKolo
post 20.12.2007, 21:33:52
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 14.12.2007

Ostrzeżenie: (0%)
-----


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]

Ten post edytował PolKolo 20.12.2007, 21:35:29
Go to the top of the page
+Quote Post
nospor
post 20.12.2007, 21:46:58
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
PolKolo
post 20.12.2007, 22:02:32
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 14.12.2007

Ostrzeżenie: (0%)
-----


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



Ten post edytował PolKolo 20.12.2007, 22:03:08
Go to the top of the page
+Quote Post
Anatejms
post 21.12.2007, 18:21:26
Post #8





Grupa: Zarejestrowani
Postów: 9
Pomógł: 1
Dołączył: 19.12.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował Anatejms 21.12.2007, 18:22:04
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: 8.07.2025 - 19:16