![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 18.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam probelm z wywolaniem funkcji JavaScript po zapytaniu Ajaxowym... Musze przerobic stara wersje formularza na wersje ajaxowa... Po submit formularz wywoluje sie sam z tym ze wtedy sprawdza poprawnosc danych zapisanych w formularzu i jezeli jest blad wyswietla popup. Niestety po zapytaniu Ajaxowym funkcje JavaScript nie dzialaja (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Podam latwy przyklad dla zrozumienia problemu: Kod <html> <head> </head> <body> <script type="text/javascript"> function makeStandardPOSTRequest(url, parameters) { http_request = false; if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/html'); } } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Cannot create XMLHTTP instance'); return false; } http_request.onreadystatechange = alertContents; http_request.open('POST', url, true); http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http_request.setRequestHeader("Content-length", parameters.length); http_request.setRequestHeader("Connection", "close"); http_request.send(parameters); } function alertContents() { if (http_request.readyState == 4) { if (http_request.status == 200) { result = http_request.responseText; document.getElementById('myDiv').innerHTML = result; } else { alert('There was a problem with the request.'); } } } function submitForm(){ paramsString = "abc=1"; makeStandardPOSTRequest('test.php',paramsString); } function checkResponse(value){ if (value=="abc") alert("wartosc jest OK"); else alert("wartosc nie jest OK"); } </script> <?php echo "<div id =myDiv>"; echo '<script type="text/javascript">alert("JavaScriptTestText");</script>'; if (isset($_POST['abc'])) { echo '<script type="text/javascript">checkResponse('.$_POST['abc'].');</script>'; } echo "<form name=\"mydirectselectionform\" id=\"mydirectselectionform\" method=\"POST\">"; echo "<a href='javascript:submitForm()'>Submit</a>"; echo "</form>"; echo "</div>"; ?> </body> </html> Chodzi o to ze funkcja alert("JavaScriptTestText") jest wywolywana tylko raz (przy wczytaniu strony) Niestety nie jest juz wywolywana po Submi'cie formularza (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) dlatego tez nie moge wywolac mojej funcji JavaScript - checkResponse() ktora sprawdza poprawnosc danych i ewentualnie wyswietla popup. Podany przyklad jest tylko przykladem i chodzi tylko o zrozumienie problemu wiec za uwagi ze moj formularz nie ma zadnego input i tym podobne z gory dziekuje;) Czy ktos potrafi mi pomoc? Dziekuje Adam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Kod document.getElementById('myDiv').innerHTML = result; gdzie: Kod echo "<div id =myDiv>"; echo '<script type="text/javascript">alert("JavaScriptTestText");</script>'; ... echo "<a href='javascript:submitForm()'>Submit</a>"; echo "</form>"; echo "</div>"; po pierwsze skrypty w "body" "aktywują" się podczas wczytywania dokumentu i nie będą działały - musisz uruchomić zewnętrzną funkcję... po drugie "<a href='java script:submitForm()'>Submit</a>" - "wycinasz" to i podmieniasz - samo wywołanie zewnetrznej funkcji która już była wczytana przez 'java script:submitForm()' raczej powinno działać o ile wczytasz to ponownie - jednak raczej bezpieczniej jest tą funkcjonalność "podpiąć" przez DOM (np. jakis_element.onclik=jakaś_funkcja) po podmienieniu tej treści do danego elementu tej treści pozatym dlaczego to nie jest w dziale JavaScript bądź AJAX??... |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 18:38 |