Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php + ajax + json
Forum PHP.pl > Forum > PHP
damianooo
Witam,

Mam taki oto problem

Ze strony a dostaję odpowiedź json , dzięki czemu mogę odpalić funkcję w której jest kolejna metoda Ajaxowa. Obydwie metody jak widać działają podobnie. Pytanie dlaczego nie dostaję odpowiedzi w json ze strony b ?

Kod:

  1. function create(){
  2. var _costam= $("#costam").val();
  3.  
  4. $.ajax({
  5. url: "/strona_b",
  6. type: "POST",
  7. dataType: "json",
  8. data: {
  9. costam: _costam
  10. },
  11. success: function(data){
  12. cosnole.log(data['cos']);
  13. }
  14. });
  15. }
  16.  
  17.  
  18. // Changing offer type
  19. $("#type").change(function() {
  20.  
  21. var _type = $(this).val();
  22.  
  23. $.ajax({
  24. url: "/strona_a",
  25. type: "POST",
  26. dataType: "json",
  27. data: {
  28. type: _type
  29. },
  30. success: function(data) {
  31.  
  32. if (data) {
  33. create();
  34. }
  35.  
  36. }
  37. });
  38.  
  39. }


natomiast w php mam tak:

strona_a

  1. $myData = array();
  2. $myData['cos'] = 'Hello Worold';
  3. echo json_encode($myData);


strona_b

  1. $myData = array();
  2. $myData['cos'] = 4;
  3. echo json_encode($myData);
nospor
Możę ci się ogóle create nie odpala....

FireFox -> FireBug i będziesz widział czy w ogóle ci idzie żądanie do strony b...
damianooo
odpala ... sprawdzałem ... odziwo jak w funkcji create zmieniłem w metodzie ajax dataType na html to console.log pokazuje mi dowolnego stringa jakiego tam wstawię ... nie wiem czemu jsona mi nie pobiera
nospor
Twój kod php musi jeszcze wysłać nagłówek, że to jest json
damianooo
Dodałem :

header('Content-type: application/json');

przed

echo json_encode($myData);

Ale też nic to nie dało, dalej nie odpowiada . Chyba to nie było aż tak potrzebne ponieeważ dla strony_a działa bez tego nagłówka json
nospor
A co ci dokładnie zwraca firebug jako odpowiedź od b?
damianooo
zwraca mi linka w dokładnie to miejsce które chce trafić a więc: /strona_b

w POST wywyła mi dane które wysyłam

natomiast w RESPONSE widzę, że jest moja tablica w json wysłana ... a wiec {"cos":4}

problem jest w wyświetleniem w console.log tej danej ...
nospor
Ale w odpowiedzi masz napisane ze to json czy html? Bo odpowiedź już rozróżnia te rzeczy...
damianooo
JSON ... ale ok już działa ... okazuje się że jak zajrzałem na sekcję HTML to był błąd, którego naprawienie spowodowało że odpowiedź odbieram już w success .. a więc nie działało bo były inne błędy ...

ale problem rozwiązany więc dzięki
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.