我试图以以下方式使用$ .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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top