Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Następny problem z formem...
Forum PHP.pl > Forum > XML, AJAX > AJAX
mokry
Okey... Mam pewien problem.
Jako, że AJAX'em zajmuję się od... kilku godzin natrafiłem na pewien problem... Niestety nie umiem sobie z nim poradzić...
Przeglądałem już różne przykłady, manuale, ale i tak bezskutecznie.

PROBLEM:
Poniżej zamieszczam kod... Wydaje mi się być prawidłowy a jednak nie jest...
Zamiast wysłać zapytanie i zwrócić odpowiednią wartość, wysyła forma normalnie, bez użycia AJAX'a.
Pisze o tym, że w razie problemów form zostanie przesłany w normalny sposób, jednak mimo wszystko nie wiem co mam źle...


Część pliku odpowiedzialna za wysłanie forma. Umieszczona w head:
  1. <script language="JavaScript" src="advajax.js"></script>
  2.  
  3. <script language="JavaScript">
  4. function Wyslij() {
  5.  
  6. advAJAX.assign(document.getElementById("kontakt"), {
  7. onSuccess : function(obj) {
  8.  
  9. if (obj.responseText == "1")
  10. alert("Formularz został wysłany."); else
  11. alert("Błąd, formularz nie został wysłany z powodu blędów podczas jego wypełniania.");
  12. }
  13. });
  14. }


Sam form:
  1. <form method="post" action="kontakt.php" id="kontakt">
  2. <table width="100%" border="0" cellspacing="1" cellpadding="1">
  3. <tr>
  4. <td width="120"><div align="right">imię i nazwisko: </div></td>
  5. <td><label>
  6. <input name="imienazw" type="text" size="35" />
  7. </label></td>
  8. </tr>
  9. <tr>
  10. <td><div align="right">adres e-mail: </div></td>
  11. <td><label>
  12. <input name="email" type="text" size="35" />
  13. </label></td>
  14. </tr>
  15. <tr>
  16. <td><div align="right">tel. kontaktowy: </div></td>
  17. <td><label>
  18. <input name="tel" type="text" size="35" />
  19. </label></td>
  20. </tr>
  21. <tr>
  22. <td><div align="right">temat wiadomości: </div></td>
  23. <td><label>
  24. <input name="topic" type="text" size="35" />
  25. </label></td>
  26. </tr>
  27. <tr>
  28. <td valign="top"><div align="right">treść wiadomości: </div></td>
  29. <td><label>
  30. <textarea name="body" cols="40" rows="10"></textarea>
  31. </label></td>
  32. </tr>
  33. <tr>
  34. <td><div align="right"></div></td>
  35. <td>&nbsp;</td>
  36. </tr>
  37. <tr>
  38. <td><div align="right"></div></td>
  39. <td><label>
  40. <input type="submit" value="OK" />
  41. <input type="reset" name="Submit2" value="Anuluj" />
  42. </label></td>
  43. </tr>
  44. </table>
  45. <br />
  46. <br />
  47. <br />
  48. </form>


EDIT:
Zapomniałem dodać, że jak na razie mój plik kontakt.php wygląda tak:
Kod
1
kwiateusz
mi sie zdaje czy zgubiłeś tam jakieś onclick albo onsubmit? bo kiedy formularz ma wiedzieć w którym momencie wywołać funkcje wysij?
mokry
czy advAjax przypadkiem sam sobie nie dodaje onsubmit?
We wszystkich przykładach tak właśnie jest na stronie anakina i nie tylko



Zarzuciłem przykład na serwer:
http://autonaprawa.ltd.pl/2/kontakt.htm

EDIT:
Przy okazji troszke zmieniłem przykład... Teraz ma niby wy.swietlać tablice, ale nic z tego... tez wysyła normalnie forma... :/

OKEY, poradziłem sobie...
Wydaje się być to niesamowitym, ale wszystko nie działało przez to, że:

1. Skrypt odpowiedzialny za wysłanie był w samym pliku... Wrzuciłem go do osobnego pliku .js
2. Do body dodałem onload="wyslij()"

Co wy na to?
ShaXbee
Skrypt nie działał wcześniej ponieważ próbowałeś podpiąć obsługę zdarzenia do nieistniejącego jeszcze elementu DOM (skrypt był zdefiniowany w head, a element poniżej, w body).

Są 2 rozwiązania - onLoad - tak jak to zrobiłeś, oraz umieszczenie tego kodu na końcu kodu html (zaraz przed końcem body).
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.