Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [advAJAX]Problem z wysyłaniem formularza
Mystic007
post 31.07.2006, 16:06:29
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 22.04.2006
Skąd: Będzin

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


Mam problem z wysyłaniem formularza bez przeładowania strony. Czytałem to oraz to i nadal nie mogę sobie poradzić. Mam taki kod (na razie nie robi nic specjalnego):
  1. <script type="text/javascript" src="advajax.js"></script>
  2. <script type="text/javascript">
  3. advAJAX.assign(document.getElementById("form"), {
  4. onSuccess : function(obj) {
  5. alert(obj.responseText);
  6. }
  7. onError : function(obj) {
  8. alert('! '+obj.responseText);
  9. }
  10. onFinalization : function(obj) {
  11. alert('!! '+obj.responseText);
  12. }
  13. });
  14. </script>
  15.  
  16. <form method="post" action="form.php" id="form">
  17. <input type="text" name="a" value="" />
  18. <input type="submit" value="OK!" />
  19. </form>

jest to wycinek z pliku form.php. Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
TomASS
post 31.07.2006, 17:41:38
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Ale jaki masz problem?
klasa advAJAX jeśli napotka błędy w kodzie to wysyła formularz "normalnie" - ot taka fajna sprawa smile.gif


--------------------
Go to the top of the page
+Quote Post
Mystic007
post 31.07.2006, 18:29:48
Post #3





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 22.04.2006
Skąd: Będzin

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


Cytat(TomASS @ 31.07.2006, 16:41 ) *
Ale jaki masz problem?

-"z wysyłaniem formularza bez przeładowania strony."
Cytat(TomASS @ 31.07.2006, 16:41 ) *
klasa advAJAX jeśli napotka błędy w kodzie to wysyła formularz "normalnie" - ot taka fajna sprawa smile.gif

-Czy możesz wskazać owe błędy w kodzie?
Go to the top of the page
+Quote Post
devnul
post 31.07.2006, 19:23:23
Post #4





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


  1. <script type="text/javascript" src="advajax.js"></script>
  2. <script type="text/javascript">
  3. advAJAX.assign(document.getElementById("form")) {
  4. onSuccess : function(obj) {
  5. alert(obj.responseText);
  6. }
  7. onError : function(obj) {
  8. alert('! '+obj.responseText);
  9. }
  10. onFinalization : function(obj) {
  11. alert('!! '+obj.responseText);
  12. }
  13. });
  14. </script>
  15.  
  16. <form method="post" action="form.php" id="form">
  17. <input type="text" name="a" value="" />
  18. <input type="submit" value="OK!" />
  19. </form>
a teraz?


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
UNK
post 31.07.2006, 20:23:49
Post #5





Grupa: Zarejestrowani
Postów: 93
Pomógł: 5
Dołączył: 30.04.2006
Skąd: Gliwice

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


Moze nie znam sie na tym wszystkiem jakos bardzo bardzo dobrze, ale moze jak cos dodam to pomoze tongue.gif

  1. <script type="text/javascript" src="advajax.js"></script>
  2. </head>
  3.  
  4.  
  5. <script type="text/javascript">
  6. function wyslij(id)
  7. {
  8. advAJAX.assign(document.getElementById(id)) {
  9. onSuccess : function(obj) {
  10. alert(obj.responseText);
  11. }
  12. onError : function(obj) {
  13. alert('! '+obj.responseText);
  14. }
  15. onFinalization : function(obj) {
  16. alert('!! '+obj.responseText);
  17. }
  18. });
  19. }
  20.  
  21. <form onsubmit="wyslij('form');" method="post" action="form.php" id="form">
  22. <input type="text" name="a" value="" />
  23. <input type="submit" value="OK!" />
  24. </form>
  25.  
  26. </body>


Ten post edytował UNK 31.07.2006, 20:24:08
Go to the top of the page
+Quote Post
TomASS
post 31.07.2006, 21:58:49
Post #6





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Tak działa:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <script type="text/javascript" src="../advajax.js"></script>
  5. <script type="text/javascript">
  6. function a_ta_funkcja_gdzie_jest() {
  7.  
  8. advAJAX.assign(document.getElementById("loginForm"), {
  9. onSuccess : function(obj) {
  10. alert(obj.responseText);
  11.  
  12. }
  13. });
  14. }
  15. </head>
  16. <body onload="a_ta_funkcja_gdzie_jest()">
  17.  
  18. <form method="post" action="1.php" id="loginForm">
  19. <input type="text" name="a" value="" />
  20. <input type="submit" value="OK" id="submitBtn" />
  21.  
  22. </form>
  23. </body>
  24. </html>

Brakuje Ci funkcji która jest ładowana z elementem <body> oraz to, że formularzy (chyba) nie może mieć id=form


--------------------
Go to the top of the page
+Quote Post
yasiek
post 22.08.2006, 18:34:40
Post #7





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 4.06.2006
Skąd: Strzeszyce/Kraków

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


Ech... to ja się teraz męczę nad inną rzeczą. Z javą script jest u mnie bardzo średnio... więc może ktoś mi pomoże. Jak zrobić, żeby teraz zamiast alertu, pojawiał się responseText, w divie, w którym był formularz?
Go to the top of the page
+Quote Post
UNK
post 22.08.2006, 18:56:14
Post #8





Grupa: Zarejestrowani
Postów: 93
Pomógł: 5
Dołączył: 30.04.2006
Skąd: Gliwice

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


musisz sie odnieść do id diva w którym był ten formularz, może że nie był w żadnym to musisz go tam wrzucić tongue.gif

  1. <div id='test'>
  2. <form ...>
  3. ...
  4. </form>
  5. </div>


A w skrypcie JS musisz dodać
  1. document.getElementById('test').innertHTML = responseText;

zamiast alerta.

PS. Mam nadzieję że o to chodzi :-)

Ten post edytował UNK 22.08.2006, 18:56:41
Go to the top of the page
+Quote Post
yasiek
post 22.08.2006, 19:21:43
Post #9





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 4.06.2006
Skąd: Strzeszyce/Kraków

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


Tak, o to chodziło. Ale udało mi się nawet dojść do tego samemu...tongue.gif to teraz mi jeszcze powiedz, czy mogę dodać jakiś button, albo coś w tym stylu, który resetowałby tego diva do początkowej postaci smile.gif dzięki!
Go to the top of the page
+Quote Post
UNK
post 22.08.2006, 19:38:20
Post #10





Grupa: Zarejestrowani
Postów: 93
Pomógł: 5
Dołączył: 30.04.2006
Skąd: Gliwice

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


heh, jeśli formularz też jest wsadzany do tego diva dynamicznie to nie ma problemu, jeśli jednak on jest na stronie po odświeżeniu, a potem się traci, to musisz napisać mały skrypcik w JS który by te wszystkie elementy z powrotem tam pokazał (jednak jak na mój gust łatwiej będzie znowu dynamicznie wstawić formularz).

PS. Musisz pamiętać że advAJAX nie ma możliwości wykonywania skryptu JS po ściągnięciu fragmentu strony, musisz sobie jakoś poradzić z tym :-)

PS2. Nie wykonuje skryptów w <script> ... </script>, ale w onclick='przywroc();' wykona (o ile dobrze pamiętam)
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: 25.07.2025 - 01:53