gpt4 book ai didi

javascript - 如何在 Ajax 调用中获得两个数组?

转载 作者:行者123 更新时间:2023-11-30 16:52:15 26 4
gpt4 key购买 nike

JS 代码:

$.ajax({ 
url: 'assignavailtrainers.php',
data: {action:'test'},
type: 'post',
success: function(data) {

}
});

PHP 代码:

<?php
$username = "trainerapp";
$password = "password";
$hostname = "localhost";
$link = @mysql_connect($hostname, $username, $password);

if(@mysql_select_db("trainer_registration"))
{

$select_query_num = @mysql_query("select program_id,facilitator_id,availability_status from program_facilitator where availability_status in (1,2)");
$select_query_name = @mysql_query("select facilitator_id,firstname,lastname,email_id from facilitator_details");
$num_rows = @mysql_num_rows($select_query_num);
$trainerdetails = [];
$traineravaildetails = [];
$i = 0;
$j = 0;
while($row = @mysql_fetch_assoc($select_query_num))
{

$trainerdetails[$i]['pgidi'] = $row['program_id'];
$trainerdetails[$i]['facilitatorid'] = $row['facilitator_id'];
$trainerdetails[$i]['avail_status'] = $row['availability_status'];
$trainerdetails[$i]['idi'] = $row['facilitator_id'];

$i++;
}


while($row1 =@mysql_fetch_assoc($select_query_name))
{
$traineravaildetails[$j]['facilitatorid'] = $row1['facilitator_id'];
$traineravaildetails[$j]['firstname'] = $row1['firstname'];
$traineravaildetails[$j]['lastname'] = $row1['lastname'];
$traineravaildetails[$j]['emailidvalue'] = $row1['email_id'];
$j++;
}
echo json_encode(array('result1'=>$trainerdetails,'result2'=>$traineravaildetails));
}
?>

请帮我看看ajax成功功能区的代码。我试过使用 initChart2 但我收到一条错误消息,指出 initChart2 未定义。我似乎不明白如何在 ajax 中从 PHP 获取两个数组,因为我是 ajax 新手。如果有人可以帮助我提供代码和解释,那就太好了。我还需要知道如何区分从 PHP 发送的 ajax 输出。

最佳答案

你有两个选择:

第一个是简单地将接收到的(文本)数据解析为 JSON:

var jsonData = JSON.parse(data);
// or simply data = JSON.parse(data);

但我认为最好的方法是为 $.ajax() 请求指定 json 数据类型:

$.ajax(
data: {action:'test'},
type: 'post',
dataType: 'json',
success: function(data) {
...
}
});

这样,$.ajax() 还将检查接收到的 JSON 数据的有效性,如果接收到错误的 JSON 数据,将调用错误回调而不是成功回调。

...同样重要的是要注意您错过了在您的 php 中发送 json 内容类型 header :

header("Content-Type: application/json");

不再(严格)需要向此 header 发送 dataType: 'json' 参数,因为 $.ajax() 默认会猜测接收到的内容类型。但是,就我个人而言,我更喜欢两者兼顾。

参见 $.ajax() documentation .

关于javascript - 如何在 Ajax 调用中获得两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30346729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com