如何使Ajax加载/显示数据并返回变量

时间:2019-04-24 16:28:10

标签: jquery ajax

我目前有一段代码

    $("#hlist").load("sg_ajaxCheckHymn.php",{hm: $("#textbox").val()});

可以正确运行一个php文件,该文件将进行数据库查找并返回一些格式正确的数据,该数据显示在名为hlist的Div中。

数据库查找还会收集另一个变量,该变量将不显示,但我希望返回该变量,以便以后可以在javascript变量中使用它。 (它将作为另一个Ajax查询的输入。)

有没有办法在一个Ajax调用中做到这一点(显示一些日期并保留另一个位供变量使用)还是我需要进行两个单独的调用?

1 个答案:

答案 0 :(得分:0)

您可以使用AJAX请求返回一个包含多个信息的JSON响应,例如:

sg_ajaxCheckHymn.php的输出:

{
    'db_data' : { ... },     <-- to be displayed
    'hidden_data' : { ... }  <-- to be handled in JS, ...
}

然后,在AJAX成功之后,您可以处理JSON输出(假设您有jQuery,请参见http://api.jquery.com/jquery.ajax/http://api.jquery.com/deferred.then/):

$( ... ).ajax(
  ...
).then(function(data) {
  // Display DB results
  $('my_div').html(data['db_data']);

  // Handle other JSON data in the way you want
  console.log(data.hidden_data);
});

然后,您可以做您想做的事情,既要在AJAX之后显示两个数据库结果,又要以其他方式处理一些其他(隐藏)数据,这样就可以在一个唯一的ajax请求中显示。