Использование jQuery $ .post () для возврата нескольких значений

StackOverflow https://stackoverflow.com/questions/4636340

  •  08-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать $ .post () следующим образом:

$.post("file.php", { file_id: $(this).val()}, function(data){...}То file.php Затем содержит запрос базы данных и возвращает массив с заголовком, описанием и ссылкой на изображение.

То, что я хочу сделать, то может обновить .val() Для полей формы для каждого. Я понимаю, как это сделать в одной переменной, это было бы только следующее:

$.post("file.php", { file_id: $(this).val()}, function(data){ 
   $('#title').val(data);
}

Но как я могу получить данные, возвращаемые, чтобы быть узнаемым в jQuery как отдельные переменные, либо как массив?

заранее спасибо

Это было полезно?

Решение

Видеть Документы за $ .post. Отказ Четвертый параметр является DataType. Вы можете установить это на JSON для ваших возвратных данных, которые будут проанализированы в объект или массив JavaScript.

$.post(
   "file.php", 
   { file_id: $(this).val() }, 
   function(data){ $('#title').val(data.title); $('#para').val(data.paragraph); },
   'json');

В вашем файле file.php вы можете сделать что-то вроде

<?php
$return_data=array('title'=>'Fishes Go To Market','paragraph'=>'Lots of stuff');

header('Content-Type: application/json');
echo json_encode($return_data);
exit();

Обязательно включите заголовок (), поэтому jQuery знает, что ваши данные должны быть JSON и использовать JSON_ENCODE, чтобы он отформатирован правильно.

Увидеть json_encode. Документы для получения дополнительной информации о том, а Документы на заголовке. Отказ Remeber У вас нет какого-либо другого вывода, приходится перед вашим заголовком () и печати данных JSON_ENCODED или заголовок, а также JSON, будет недействительным.

Другие советы

Самый простой способ - передать значения как JSON. Вам нужно будет преобразовать свой массив на JSON на сервере (есть много библиотеки на стороне серверов доступны для этого). И изменить ваше .post() Способ возвращения данных как JSON, добавив четвертый параметр, как:

$.post("file.php", { file_id: $(this).val()}, function(data) { ... }, "json");

Затем вы можете заполнить ваши переменные так же легко, как:

$('#title').val(data.title);
$('#description').val(data.description);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top