Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ AJAX _ [Ajax][jQuery] Dlaczego po wysłaniu dane nie znikają z formularza ?

Napisany przez: damianooo 4.07.2016, 19:26:07

Witam,

Mam taki oto formularz w TWIG:

  1. <http://december.com/html/4/element/form.html id="form">
  2. <http://december.com/html/4/element/div.html class="coupon_form">
  3. {% for key,match in matches %}
  4. <http://december.com/html/4/element/input.html type="hidden" name="match_id[]" id="match_id" class="match_id" value="{{ match.match_id }}">
  5. <http://december.com/html/4/element/div.html class="coupon_form_desc">
  6. {{ match.description }}
  7. </http://december.com/html/4/element/div.html>
  8. <http://december.com/html/4/element/div.html class="coupon_form_host">
  9. {{ match.host }}
  10. </http://december.com/html/4/element/div.html>
  11. <http://december.com/html/4/element/div.html class="coupon_form_host_type">
  12. <http://december.com/html/4/element/input.html type="text" name="hostType[]" id="hostType" class="hostType" maxlength='1'>
  13. </http://december.com/html/4/element/div.html>
  14. <http://december.com/html/4/element/div.html class="coupon_form_dash">-</http://december.com/html/4/element/div.html>
  15. <http://december.com/html/4/element/div.html class="coupon_form_guest_type">
  16. <http://december.com/html/4/element/input.html type="text" name="guestType[]" id="guestType" class="guestType" maxlength='1'>
  17. </http://december.com/html/4/element/div.html>
  18. <http://december.com/html/4/element/div.html class="coupon_form_guest">
  19. {{ match.guest }}
  20. </http://december.com/html/4/element/div.html>
  21. <http://december.com/html/4/element/div.html class="coupon_form_term">
  22. {{ match.term }}
  23. </http://december.com/html/4/element/div.html>
  24. {% endfor %}
  25. </http://december.com/html/4/element/div.html>
  26. <http://december.com/html/4/element/input.html type="submit" value="Wyślij"/>
  27. </http://december.com/html/4/element/form.html>


oraz taki kod jQuery:

  1. <http://december.com/html/4/element/script.html type="text/javascript">
  2.  
  3. $(function(){
  4. $("#form").submit(function(e){
  5. var form=$(this);
  6. $.ajax({
  7. url:"{{ path('typerka_types') }}",
  8. dataType:"JSON",
  9. type:"POST",
  10. data:form.serialize(),
  11. success:function(data){
  12. console.log(data);
  13. },
  14. error: function() {
  15. console.log("Wystąpił błąd");
  16. }
  17. });
  18. e.preventDefault();
  19. });
  20. });
  21.  
  22. </http://december.com/html/4/element/script.html>


Dlaczego po kliknięciu przycisku "Wyślij" dane nie znikają z formularza ?
Czego mi tutaj brakuję ? Będę wdzięczny za podpowiedź.

Napisany przez: trueblue 4.07.2016, 19:38:48

http://www.w3schools.com/jsref/met_form_reset.asp

Napisany przez: damianooo 4.07.2016, 20:03:19

ok...
ale mam jeszcze jedną rzecz ...

Dlaczego po wysłaniu danych do bazy nie wykonuje się ta część kodu po "success" tylko ta po "error" ?

tutaj:

  1. success:function(data){
  2. console.log(data);
  3. },
  4. error: function() {
  5. console.log("Wystąpił błąd");
  6. form.get(0).reset();
  7. }


w firebugu ciągle po wysłaniu danych wypisuje mi "Wystąpił błąd" , dlaczego ?

Napisany przez: trueblue 4.07.2016, 20:09:01

Zobacz jaką odpowiedź zwraca żądanie (zakładka Chrome->F12->Network->kliknięcie na żądanie).

Napisany przez: damianooo 4.07.2016, 20:21:36

302 Found.

A więc chyba powinno być ok a nie jest

Rozumiem że powinno być 200 OK ?

Napisany przez: trueblue 4.07.2016, 20:28:52

Niekoniecznie, być może ma być przekierowanie.
Po kliknięciu w dane żądanie wybierz podzakładkę Preview lub Response (obok Headers).

Napisany przez: damianooo 4.07.2016, 20:36:03

wybrałem "Response" i mam tutaj całą treść strony - dosyć przydługawą więc tego nie wkleję tutaj

Napisany przez: trueblue 4.07.2016, 20:47:20

Chodziło mi o odpowiedź tylko tego żądania, które generuje wywołania Ajax.

Napisany przez: damianooo 4.07.2016, 20:54:26

hmm ... patrzę w Firefox w na zakładce Net klikając w wybranego requesta (POSTa) i na podzakładce (obok Headers i Post) Response i mam tak (wkleiłem tylko początek) :

  1. <!DOCTYPE html>
  2. <http://december.com/html/4/element/html.html class="no-js">
  3. <http://december.com/html/4/element/head.html>
  4. <http://december.com/html/4/element/meta.html charset="utf-8">
  5. <http://december.com/html/4/element/meta.html http-equiv="X-UA-Compatible" content="IE=edge">
  6. <http://december.com/html/4/element/title.html>Strona Główna | Typerka</http://december.com/html/4/element/title.html>
  7. <http://december.com/html/4/element/link.html rel="icon" type="image/png" href="/favicon.png">
  8. <http://december.com/html/4/element/meta.html name="description" content="">
  9. <http://december.com/html/4/element/meta.html name="viewport" content="width=device-width, initial-scale=1">
  10.  
  11. <http://december.com/html/4/element/link.html href="/bundles/mytyperka/css/styles.css" rel="stylesheet">
  12.  
  13. <http://december.com/html/4/element/script.html src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></http://december.com/html/4/element/script.html>
  14.  
  15. </http://december.com/html/4/element/head.html>
  16. <http://december.com/html/4/element/body.html class='opl' link="gray" vlink="gray" alink="gray">
  17.  
  18. <http://december.com/html/4/element/div.html id="content_01">
  19. ....


Napisany przez: trueblue 4.07.2016, 21:15:48

Tzn. że jest to zła odpowiedź.
Albo sprawa .htaccess albo routingu w kodzie - żądanie POST nie jest wyłapywane.

Napisany przez: damianooo 6.07.2016, 13:03:25

Rozumiem że odpowiedź powinna pokazywać obiekt JSON i mieć podzakładkę JSON a ja tego niestety nie mam.

A więc moje dane nie idą JSONem ?

Ja to mam napisane w PHP Symfony 2.6

W logach aplikacji błędów nie znalazłem
a w Profilerze w zakładce Routing mam:
typerka_types /types Route matches!





ok poradziłem sobie z tym ...
źle tego używałem faktycznie

W moim frameworku Symfony w kontrolerze nie miałem odpowiedzi JSON.
Musiałem użyć klasy jsonResponse - na forum od frameworków chłopaki podowiedzieli.

Teraz w firebugu mam normalnie zwrotkę 200 OK , zakładka Response nie pokazuje już treści strony a odowiedź w JSON , widać również w końcu zakładkę JSON, której wcześniej nie było widać.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)