使用jquery $ .post()返回多个值
题
我试图以以下方式使用$ .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的文档. 。第四参数是数据类型。您可以将其设置为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();
请确保包含header(),以便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);
不隶属于 StackOverflow