Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][HTML][PHP]Skrpt zdarzenia oclick się nie wykonuje i nie zwraca błędu
Forum PHP.pl > Forum > Przedszkole
amii
Chcę napisać skrypt, który będzie skanował stronę i wydobywał z niej pewne dane. W wyszukiwarce wpisuje hasło, które następnie jest przesyłane do skryptu php za pomocą AJAX-a tam skrypt wydobywa interesujące mnie informacje i drukuje je na ekran. Później javascript zapisuje te informacje w ukrytym div-e do dalszego użycia (wklejenia do textarea).
Tak to powinno działać. Skrypt php działa poprawnie nie wywołuje się natomiast funkcja doczepiona jako onclick dla przycisku wyszukiwania -> szukaj().
Tutaj link do skrytpu -> http://kasa.hekko.pl/filmy/filmy.htm

  1. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  2. <script type="text/javascript" src="js.js"></script>
  3. <title>Wyszukiwarka opisów do filmów</title>
  4. </head>
  5.  
  6. <form method="post" action="functions.php">
  7. <input type="text" id ="szukaj" name="szukaj" value="wprowadź nazwę filmu.." onclick="this.value=''"><br>
  8. <input type="button" id="wyslij" name="wyslij" value="Szukaj filmu" onclick="szukaj()"><br><br>
  9. <input style="width: 180px; height: 30px" type=button onclick='changeText()' value="Pobierz dane dla filmu"><br>
  10.  
  11. <textarea id="descr" name="descr" rows="15" cols="80"></textarea>
  12. </form>
  13.  
  14. <div id="box" style="display:none"></div>
  15.  
  16. </body>
  17. </html>


Plik js.js
[JAVASCRIPT] pobierz, plaintext
  1. function szukaj() {
  2. var xhr = xmlhttp();
  3. var oForm = document.forms[0]; //pobieramy jedyny dokument formularza na stronie
  4. var tresc = koduj(oFrom); //tresc zakodowana do zadania POST
  5. xhr.open("POST", oForm.action, true);
  6. xhr.setRequestHeader("Content-Type", "application/x-www-urlencoded");
  7.  
  8. xhr.onreadystatechange = function () {
  9. if(xhr.readyState == 4 && xhr.status == 200) {
  10. saveResult(xhr.responseText);
  11. }
  12. else {
  13. saveResult("Wystapił błąd podczas żądania: " + xhr.statusText);
  14. }
  15. };
  16.  
  17. xhr.send(tresc);
  18. }
  19.  
  20.  
  21.  
  22. //funckja tworzaca obiekt XMLHttp w roznych przegladarkach
  23. function xmlhttp() {
  24. if (typeof XMLHttpRequest != "undefined") {
  25. return new XMLHttpRequest();
  26. }
  27. else if (window.ActiveXobject) {
  28. var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
  29.  
  30. for (var i=0; i<aVersions.length; i++) {
  31. try {
  32. var oXmlHttp = new ActiveXObject(aVersions[i]);
  33. return oXmlHttp;
  34. }
  35. catch (oError) {}
  36. }
  37. }
  38. throw new Error("Nie można utworzyć obiektu XMLHttp.");
  39. }
  40.  
  41.  
  42. function koduj(oForm) {
  43. var aParams = new Array();
  44.  
  45. for (var i=0; i<oForm.length; i++) {
  46. var param = encodeURIComponent(oForm.elements[i].name);
  47. param += "=";
  48. param += encodeURIComponent(oForm.elements[i].value);
  49. aParams = push(param);
  50. }
  51. return aParams.join("&");
  52. }
  53.  
  54.  
  55. function saveResult(tresc) {
  56. var box = document.getElementById("box");
  57. if (box.innerHTML != "") box.innerHTML = "";
  58. box.innerHTML = tresc;
  59. }
[JAVASCRIPT] pobierz, plaintext
osl
spróbuj zamiast
Kod
onclick="szukaj()"
dać 
Kod
onclick="window.szukaj()"


btw. przy wywołaniu funkcji koduj masz literówkę wink.gif
amii
Dzięki za ta literówkę, długo jej szukałem ale już poprawiona smile.gif
Niestety zmiany nie pomagają :/ Dziwna sprawa bo skrypt nie generuje żadnych błędów (mimo, że został tak napisany żeby generował)

Dobra dało radę dzięki cudownemu IE, który ma konsole wykrywania błędów JS
Zamiana:
aParams = push(param);
aParams.push(param);
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.