我正在从另一个php页面的ajax和JSON请求中检索数据。我使用json pasrse获取了两个数组字符串。
JAVASCRIPT:
if (xmlhttp.readyState==4 && xmlhttp.status==20
{
var data = JSON.parse(xmlhttp.responseText);
document.getElementById("myDiv").innerHTML=data.subject;
document.getElementById("myDiv").innerHTML=data.scriptID;
}
PHP:
for($i=0;$i<$scriptscount;$i++){
$scriptID[] = $currentscript[$i]['scriptID'];
}
for($i=0;$i<$scriptscount;$i++){
$subject[] = $currentscript[$i]['subject'];
}
echo json_encode(array(
'scriptID'=> $scriptID,
'subject'=> $subject
));
问题是,我用逗号得到两个单独的数组。但是,我想在当前表单中选择菜单,方法是将$ scriptID作为值传递,将$ subject作为文本传递。
感谢。
答案 0 :(得分:0)
$json = array();
foreach ($scriptscount as $sc) {
$json[] = array("script" => $sc['scriptID'], "subject" => $sc['subject']);
}
echo json_encode($json);
答案 1 :(得分:0)
您可以按如下方式修改php:
for($i=0;$i<$scriptscount;$i++){
$arr['script'][] = $currentscript[$i]['scriptID'];
$arr['subject'][] = $currentscript[$i]['subject'];
}
echo json_encode($arr);
用于选择框生成:
var data = JSON.parse(xmlhttp.responseText);
document.getElementById("mydiv").innerHTML= "<select>";
for(x in data.script)
{
document.getElementById("mydiv").innerHTML = document.getElementById("mydiv").innerHTML + "<option value="+data.script[x]+">"+data.subject[x]+"</option>";
}
document.getElementById("mydiv").innerHTML = document.getElementById("mydiv").innerHTML + "</select>";