0

別のphpページからajaxおよびJSONリクエストからデータを取得しています。json passrse を使用して 2 つの配列文字列を取得しました。

ジャバスクリプト:

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
));

問題は、カンマで 2 つの別々の配列を取得していることです。しかし、$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 に答える