0

我正在从另一个 php 页面的 ajax 和 JSON 请求中检索数据。我已经使用 json passrse 获取了两个数组字符串。

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 作为文本传递来在当前表单中创建选择菜单。

谢谢。

4

2 回答 2

0
$json = array();

foreach ($scriptscount as $sc) {
    $json[] = array("script" => $sc['scriptID'], "subject" => $sc['subject']);
}

echo json_encode($json);
于 2013-09-19T20:29:01.153 回答
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>";
于 2013-09-19T20:39:40.623 回答