Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jquery] Problem z informacją zwrotną z PHP
Barton
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 26.10.2008

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


Witam,

Po dodaniu rekordu do bazy za pomocą .ajax chcę otrzymać jedną informację zwrotną. Kod realizujący metodę POST dodający rekord do bazy znajduje się w pliku index.html czyli tam gdzie reszta dokumentu. Kod php

  1. try {
  2. $dodaj = $pdo -> prepare ('INSERT INTO posty (tytul, tresc, kategoria) VALUES (:tytul, :tresc, :kategoria)');
  3.  
  4. $dodaj -> bindValue(':tytul', $_POST['tytul'], PDO::PARAM_STR);
  5. $dodaj -> bindValue(':tresc', $_POST['tresc'], PDO::PARAM_STR);
  6. $dodaj -> bindValue(':kategoria', $_POST['kategoria'], PDO::PARAM_STR);
  7.  
  8. $ile = $dodaj -> execute();
  9.  
  10. $wynik = $pdo->lastInsertId();
  11. $dane = json_encode(array('id' => $wynik));
  12.  
  13. echo $dane;
  14. }


Natomiast skrypt ajaxowy wygląda tak:

  1. $("#formpost").submit(function(){
  2.  
  3. var tytul = $("#tytul").val();
  4. var tresc = $("#trescw").val();
  5. var kategoria = $("#kategoria").val();
  6.  
  7. var $form = $(this),
  8. $inputs = $form.find("input, select, button, textarea"),
  9. serializedData = $form.serialize();
  10. $inputs.attr("disabled", "disabled");
  11.  
  12. if (tytul !== '') {
  13. if (tresc !== '') {
  14. $.ajax( {type: 'POST', url: 'index.html', data: serializedData, success: function(dane) {
  15.  
  16. $('#tytul').val('');
  17. $('#trescw').val('');
  18. $inputs.removeAttr("disabled");
  19.  
  20. $('#tresclewa').prepend('<div class=\"post\">' + dane.id + '</div>');
  21.  
  22. }});
  23. }
  24. else {
  25. alert('Jedno z pól nie zostało wypełnione.');
  26. $inputs.removeAttr("disabled");
  27. }
  28. }
  29. else {
  30. alert('Jedno z pól nie zostało wypełnione.');
  31. $inputs.removeAttr("disabled");
  32. }
  33.  
  34. return false;
  35. });



Problem polega na tym że wszystko się dodaje, ale zmienna dane.id zwraca swoją wartość jako undefined. Po dodaniu dataType: 'json', skrypt w ogóle nie działa.

Po pierwsze, dlaczego po dodaniu "dataType: 'json'" skrypt przestaje działać?

Po drugie, dlaczego 'dane.id' zwraca 'undefined'? Czy możliwą przyczyną jest to że w związku z tym iż wszystko jest realizowane w index.html, reszta informacji 'zakłóca odbiór' danych? Próbowałem dodać na końcu kodu PHP exit; ale nic to nie zmieniło.

Ten post edytował Barton 14.03.2012, 22:59:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
d3ut3r
post
Post #2





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Za pomocą firebuga sprawdź co zwraca Ci zapytanie ajaxowe i w 5 minut będziesz wiedział zapewne co i jak.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 16:55