[英]How do I get two arrays in Ajax call?
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,因此我似乎不太了解如何从ajax中的PHP获取两个数组。 如果有人可以在代码解释方面为我提供帮助,那就太好了。 而且我还需要知道如何区分从PHP发送来的ajax输出。
你忘了:
header("Content-Type: application/json");
…在您的PHP中。
在输出JSON时,您是在告诉浏览器它是HTML(PHP的默认设置),因此jQuery不会将其转换为有用的数据结构。
添加它,然后您应该能够访问data.result1
和data.result2
。
您有两种选择:
第一个是简单地将接收到的(文本)数据解析为JSON:
var jsonData = JSON.parse(data);
// or simply data = JSON.parse(data);
但是我认为最好的方法是为$ .ajax()请求指定json dataType:
$.ajax(
data: {action:'test'},
type: 'post',
dataType: 'json',
success: function(data) {
...
}
});
这样,$ .ajax()还将检查接收到的JSON数据的有效性,如果接收到错误的JSON数据,将调用错误回调而不是成功回调。
...也很重要,要注意您错过了通过以下方式在php中发送json内容类型标头:
header("Content-Type: application/json");
不再(严格)需要向此标头发送dataType:'json'参数,因为默认情况下$ .ajax()会根据接收到的内容类型猜测它。 但是,就我个人而言,我更喜欢两者都做。
参见$ .ajax()文档 。
获取ajax数据:
$.ajax({
url: 'assignavailtrainers.php',
data: {action:'test'},
type: 'post',
success: function(data) {
data.result1;
data.result2;
}
});
您可以使用console.log(data);
查看数据结构
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.