ďťż
Podstrony
|
telcocafeWitam, mam 2 pliki; index.php:<html> <head> <script> function ZapytaniePHP(url){ if (window.XMLHttpRequest)xmlHttp = new XMLHttpRequest(); else if (window.ActiveXObject)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlHttp.onreadystatechange = AjaxPHP; xmlHttp.open("GET", url, true); xmlHttp.send(null); } function AjaxPHP(){ if (xmlHttp.readyState == 4 || xmlHttp.status == 200){ document.getElementById('idea').innerHTML = xmlHttp.responseText; } } </script> </head> <body> <input type=button onclick="ZapytaniePHP('pobierz.php')" value='ok, click '> <div id='idea'></div> </body> </html> i plik pobierz.php: <script>alert(0);</script> jednak po kliknieciu "ok, click" komunikat się nie pojawia. Co jest nie tak? gdzie powinienem zagnieździć tą funkcję? Z góry dziękuje Pozdrawiam Skryptu w ten sposób nie wywołasz. Musisz użyć eval. Jeśli mam być szczery, to nie lepiej skrypt JS umieścić w pliku tym co teraz masz funkcje AJAX-a? Po co kombinować? Poza tym, tak napisany skrypt(w znaczniku body) jest wywoływany podczas ładowania strony. Nie ma więc szans, żeby się załadował po pobraniu przez AJAX. Chyba że alert wywołasz w innej funkcji, którą natomiast wywołasz z poziomu funkcji AjaxPHP(). To czysto hipotetyczne, gdyby docelowy kod był bardziej rozbudowany i być się jednak upierał przy AJAX-ie. Czyli: plik pobierz.php: function wykonaj(){ alert(0); } i funkcja AjaxPHP(): function AjaxPHP(){ if (xmlHttp.readyState == 4 || xmlHttp.status == 200){ document.getElementById('idea').innerHTML = xmlHttp.responseText; wykonaj(); } } Teoretycznie powinno działać. Jak nie to podaj błędy konsoli Javascript :) andrzej_aa: rzeczywiście eval chyba lepszy :) Kompletnie zapomniałem o nim :) ok, dzieki, skorzystałem z rad i sobie poradziłem;) Jeśli mam być szczery, to nie lepiej skrypt JS umieścić w pliku tym co teraz masz funkcje AJAX-a? Po co kombinować? to zależy od zastosowań skryptu ... pamiętaj, że są skrypty dynamiczne, a przynajmniej - dane do nich są generowane dynamicznie ... JSON jest wykonywany właśnie przez "eval" ;) |
|||
Sitedesign by AltusUmbrae. |