JQuery AJAX PHP возвращение данных - PullRequest
1 голос
/ 13 августа 2011

Я использую функцию ajax в Jquery для возврата некоторых значений из сценария PHP с помощью функции json_encode. Кажется, что возвращенные данные полны слешей, кавычек и \ r \ n. Я понимаю, что должно быть что-то не так с stripslashes или magic_quotes (который включен), но не получается получить чистый вывод

1 Ответ

3 голосов
/ 15 августа 2011

Убедитесь, что при вызове ajax из jQuery вы говорите ему ожидать ответа json. Похоже, вы возвращаете открытый текст и пытаетесь разобрать его вручную.

$.ajax({
  url: "myscript.php",
  dataType: "json",
  success: function(data){
    console.log( data ); //this line only works with chrome (stock) or FireFox (with FireBug plugin)
  }
});

Этот код будет отображаться в вашей консоли (если у вас нет chrome или FF с FireBug, найдите один из них: P) вывод в формате json. Помните, что при выводе из PHP все, что вам нужно делать, это:

header('Content-type: application/json');
echo json_encode( $myAssociativeArrayOfData );
exit; //make sure nothing else happens to output something

Вам не нужно использовать какое-либо специальное форматирование или косую черту. Просто убедитесь, что код json выводится в виде кода json с правильными заголовками, и функция jjuery ajax должна преобразовать его для вас. Результатом будет переменная данных в функции успеха, являющаяся вашим объектом json (массив php). Поэтому, если вы передадите массив, подобный этому: array ('foo' => 'bar') в PHP, то в вашей функции успеха в jquery вы можете набрать: alert (data.foo); и получите диалоговое окно с надписью "bar".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...