我正在回应PHP中的两个数组值。如何在ajax中区分这些值。
if(@mysql_select_db("trainer_registration"))
{
$select_query_num = @mysql_query("select program_id,facilitator_id,availability_status from program_facilitator");
$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;
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[$i]['facilitatorid'] = $row1['facilitator_id'];
$traineravaildetails[$i]['firstname'] = $row1['firstname'];
$traineravaildetails[$i]['lastname'] = $row1['lastname'];
$traineravaildetails[$i]['emailidvalue'] = $row1['email_id'];
$i++;
}
echo json_encode($trainerdetails);
echo json_encode($traineravaildetails);
}
?>
function loadavailabletrainers (m) {
$.ajax({
url: 'assignavailtrainers.php',
data: { action:'test' },
type: 'post',
success: function(output) {
console.log(output);
}
});
}
我已经看过php的多个返回值的示例并在ajax中处理它们,但我并不理解它们。有人可以解释一下如何在我的情况下区分输出值吗?
输出:
[[{"pgidi":"3","facilitatorid":"2","avail_status":"1","idi":"2"},{"pgidi":"3","facilitatorid":"1","avail_status":"2","idi":"1"},{"pgidi":"3","facilitatorid":"2","avail_status":"1","idi":"2"},{"pgidi":"3","facilitatorid":"1","avail_status":"2","idi":"1"},{"pgidi":"3","facilitatorid":"2","avail_status":"1","idi":"2"},{"pgidi":"3","facilitatorid":"2","avail_status":"1","idi":"2"},{"pgidi":"3","facilitatorid":"2","avail_status":"2","idi":"2"}],{"7":{"facilitatorid":"1","firstname":"Vignesh","lastname":"Anand","emailidvalue":"v*******@gmail.com"},"8":{"facilitatorid":"2","firstname":"Vignesh","lastname":"Anandakumar","emailidvalue":"vign*****@gmail.com"},"9":{"facilitatorid":"3","firstname":"Vignesh","lastname":"Anand","emailidvalue":"v*****@hotmail.com"},"10":{"facilitatorid":"4","firstname":"Vignesh","lastname":"Anand","emailidvalue":"****@live.com"}}]
答案 0 :(得分:1)
一个不错的做法是只发送一个值流,以便您可以一次处理所有值。
首先,您可以创建一个容器数组:
$data = array('trainerdetails' => $trainerdetails,
'traineravaildetails' => $traineravaildetails);
然后
echo json_enconde($data);
这将生成合并输出。
PHP代码返回的编码字符串需要在客户端进行解码(更多详细信息:Parse JSON in JavaScript?)。因此,您可以使用$ .getJSON(),这是对$ .ajax(doc:http://api.jquery.com/jquery.getjson/)的特定调用的别名。
成功'功能会传递一个' =>'值'数组数据。在这种情况下,您需要处理该值,因为它们可能包含额外级别的数组。如果您可以将数据结构可视化为树视图,则会有所帮助,例如:http://jsonviewer.stack.hu/(将输出粘贴到那里)。
我希望它有所帮助!