2014-04-10 3 views
1

Мой JQuery код:Echo'ing PHP как "возвращаемого значения" Аяксу вызова

var value = $.ajax({ 
      type: "POST", 
      url: "to_submit.php", 
      data: $('#submit').serialize(), 
      cache: false, 
      async: true 
     }).success(function(response){ 
      console.log(response); 
      console.log("data received"); 
      console.log(response.data); 
      $("#appended").append(response);}); 
     }).error(function() {}); 
     }); 

и PHP

include("../header.php"); 
$to_return = "test"; 
echo "\ndata: " . json_encode($to_return); 
flush(); 

Как console.logs в яваскрипта части ведет себя:

первая консоль.log: (много информационный код (голова, тело и т.д.), связанные с моим заголовком сайта)

еще первый console.log: данные: "тест"

console.log ("полученные данные"!);

второй console.log: не определено

Таким образом, данные были признаны неопределенными и много кода смывания, и я не могу понять, почему ...

+2

Почему именно вы включаете свой 'header.php' в сценарий, который вы вызываете с помощью ajax? Не удивительно, что материал, связанный с заголовком вашего веб-сайта, появляется ... – jeroen

+1

@jeroen my php script был неверно назван. Вы указали мне, что так http://25.media.tumblr.com/tumblr_l8w2ymyt161qbjt25o1_500.gif – 0LLiena

ответ

3

Две вещи: во-первых, вам не нужно использовать flush() - просто echo ваши данные и завершите свой скрипт.

Во-вторых, результаты вашего заявления echo: data: ["insert your data here"] недействителен JSON, и вы не сможете его декодировать на клиенте.

2

Изменение

echo "\ndata: " . json_encode($to_return); 

Для

echo json_encode($to_return); 

Причина, по которой эта строка не может быть правильно проанализирована с помощью функции js decoding (это не допустимая строка json).

Смежные вопросы