2

JSONを使用してドロップダウンを入力するのに苦労していますここにスクリプトがあります

function ajax_get_json(){
    var results = document.getElementById("results");
    var hr = new XMLHttpRequest();
    hr.open("GET", "json.php", true);
    hr.setRequestHeader("Content-type", "application/json");
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {
            var data = JSON.parse(hr.responseText);
            results.innerHTML = "";     
        for (var obj in data) {
           if (data.hasOwnProperty(obj)) {
                    results.innerHTML +="<option>"+ data.l_name +"</option>";
                }
            }
        }
    }
    hr.send(null);
    results.innerHTML = "requesting...";
}

Phpは有効なJSONを生成します。

{
    "l_id": [
        "24231",
        "24309",
        "24310",
        "24232"
    ],
    "l_group_id": [
        "001",
        "002",
        "003",
        "999"
    ],
    "l_name": [
        "001 - All Students",
        "002 - All Staff",
        "003 - All Residents",
        "999 - Test List"
    ]
}

オプションとしてl_nameを表示したいだけです。

ここでの問題は、すべての値が同じオプションに挿入されることです。ループが間違っていることはわかっていますが、別のループを機能させることができませんでした。主な目標は次のように書くことです。

<option value="l_id"> l_name</option>

私はあなたの一人が私を正しい方向に向けてくれることを望んでいます。

4

1 に答える 1

0

これがあなたが望むものなら

<option value="24231">001 - All Students</option>
<option value="24309">002 - All Staff</option>
<option value="24310">003 - All Residents</option>
<option value="24232">999 - Test List</option>

あなたはこれをしたいかもしれません

var html='';
for (var i in data.l_id) {
    html +="<option value='" + data.l_id[i] + "'>"+ data.l_name[i] +"</option>";
}
results.innerHTML=html; // faster to re-write html once than per iteration
于 2013-02-02T00:02:46.973 に答える