Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [advAjax] zwrocenie kodu JavaScript
be2k
post 6.08.2007, 14:32:56
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 14.07.2006

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


witam
za pomoca advAJAX wywoluje skrypt php, ktory zwraca mi nastepujaca tresc:
  1. <?php
  2. $output='<script type="text/javascript">';
  3. $output.='function lipa() { alert("lalala"); }';
  4. $output.='</script>';
  5. $output.='<div onClick="lipa();">tekst</div>';
  6. echo $output;
  7. ?>

czyli Ajax zwraca html'a z definicja jakiejs funkcji javascriptowej i zarazem w zwroconym html jest wywolanie tej funkcji - tu w divie. Problem polega na tym, ze gdy zwrocony html wstawie na strone i klikne w diva to wyskakuje blad - brak definicji funkcji lipa().

wiem ze mozna to obejsc, gdy funkcje lipa() zdefiniuje wczesniej (w kodzie w ktorym jest wywolanie Ajaxa), ale takie rozwiazanie mnie nie satysfakcjonuje.

napewno ktos spotkal sie z takim problemem, czy znacie jego rozwiazanie?
Go to the top of the page
+Quote Post
Cezar708
post 6.08.2007, 14:39:24
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


możesz użyć funkcji eval(). Ale pamiętaj aby użyć jej jak będzie status wywołania ajaxowego 200 (czyli strona się załaduje) no i oczywiście wywołujesz samo ciało funkcji, czyli mniej więcej:
Kod
if ( httpRequestStatus == 200 ){
  eval(responseText);
}


a w przedstawionym przypadku musi to być:
Kod
alert("lalala");


Ten post edytował Cezar708 6.08.2007, 14:39:44
Go to the top of the page
+Quote Post
be2k
post 6.08.2007, 14:47:21
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 14.07.2006

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


nie no. wywolanie alert() jest banalne. nie trzeba uzywac eval(), wystarczy zrobic cos takiego:
  1. <?php
  2. header ('Content-type: text/javascript');
  3. echo "alert('tekst');";
  4. ?>

mi chodzi o funkcje ktora wykonuje bardziej zlozone rzeczy. alert() - umiescilem w niej tylko dla przykladu.

Ten post edytował be2k 6.08.2007, 14:48:23
Go to the top of the page
+Quote Post
box3r
post 7.08.2007, 14:08:38
Post #4





Grupa: Zarejestrowani
Postów: 52
Pomógł: 2
Dołączył: 24.05.2005

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


nie przesylaj kodu javascriptowego za pomoca php przesylaj tylko flage czy dany kod ma sie wykonac. Jezeli nie
chcesz odrazu kodu wczytywac zrob to tak jak tu http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm
Go to the top of the page
+Quote Post
be2k
post 8.08.2007, 10:35:15
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 14.07.2006

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


znalazłem juz sposob i jest wlasnie taki jak na podeslanej przez Ciebie stronie,
thx za odpowiedzi
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: 13.06.2025 - 06:31