Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Ajax][jQuery] Dlaczego po wysłaniu dane nie znikają z formularza ?
Forum PHP.pl > Forum > XML, AJAX > AJAX
damianooo
Witam,

Mam taki oto formularz w TWIG:

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


oraz taki kod jQuery:

  1. <script 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.  


Dlaczego po kliknięciu przycisku "Wyślij" dane nie znikają z formularza ?
Czego mi tutaj brakuję ? Będę wdzięczny za podpowiedź.
damianooo
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 ?
trueblue
Zobacz jaką odpowiedź zwraca żądanie (zakładka Chrome->F12->Network->kliknięcie na żądanie).
damianooo
302 Found.

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

Rozumiem że powinno być 200 OK ?
trueblue
Niekoniecznie, być może ma być przekierowanie.
Po kliknięciu w dane żądanie wybierz podzakładkę Preview lub Response (obok Headers).
damianooo
wybrałem "Response" i mam tutaj całą treść strony - dosyć przydługawą więc tego nie wkleję tutaj
trueblue
Chodziło mi o odpowiedź tylko tego żądania, które generuje wywołania Ajax.
damianooo
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. <html class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <title>Strona Główna | Typerka</title>
  7. <link rel="icon" type="image/png" href="/favicon.png">
  8. <meta name="description" content="">
  9. <meta name="viewport" content="width=device-width, initial-scale=1">
  10.  
  11. <link href="/bundles/mytyperka/css/styles.css" rel="stylesheet">
  12.  
  13. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
  14.  
  15. </head>
  16. <body class='opl' link="gray" vlink="gray" alink="gray">
  17.  
  18. <div id="content_01">
  19. ....

trueblue
Tzn. że jest to zła odpowiedź.
Albo sprawa .htaccess albo routingu w kodzie - żądanie POST nie jest wyłapywane.
damianooo
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ć.

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.