1

こんにちは、私は次のhtmlを持っています

<select id="fld_base_profile_id" defaultValue="-1" class="m-wrap span10" field="fld_base_profile_id" appEditor="true"></select>

私は私のajaxにこれを持っています

$result['analyze_type'][]   = array ("id" => $row[idatabase::FIELD_ID], "name" => $row[idatabase::FIELD_PROFILE_NAME]);
echo json_encode($result);

そしてjs部分(ちなみに私はPrototype.jsを使用しています):

var JSON    = transport.responseText.evalJSON();

コンソールでは、私の JSON.analyze_type は次のようになります

Array[1]
0: Object
id: "939"
name: "Reaktif İndüktif Kontrolü Ana Profili"

問題は、この JSON データをどのように解析して、HTML を次のように変更できるかです。

<option value="id">name</option>  ??

編集:解決策:

this.baseProfile    = $("fld_base_profile_id");

var JSON    = transport.responseText.evalJSON();
    this.type   = JSON.analyze_type;
    for(var i = 0; i < JSON.analyze_type.length; i++) {
        var profile = JSON.analyze_type[i];
        var opt     = document.createElement("option");
        opt.value   = profile.id;
        opt.text    = profile.name;
        this.baseProfile.appendChild(opt);
    }
4

3 に答える 3

1

これを試して

var el = document.getElementById('fld_base_profile_id');

for(var i = 0; i < JSON.length; i++) {
    var profile = JSON[i],
        opt = document.createElement("option");

    opt.id = profile.id;
    opt.value = profile.name;
    el.appendChild(opt);
}​
于 2013-10-24T08:10:55.700 に答える
1

あなたはもっときれいな方法でそれを行うことができます

最初に、JSON 応答でヘッダーを渡していることを確認Content-Type: application/jsonします。Prototype のすべての Ajax メソッドは、応答を JSON として自動的に処理し、transport.responseJSON

次に、JavaScript でこれをクリーンアップできます

this.baseProfile    = $("fld_base_profile_id");

var type = transport.responseJSON.analyze_type;

type.each(function(item){
    var option = new Element('option',{'value':item.id}).update(item.name);
    this.baseProfile.insert(option);
},this);
于 2013-10-24T14:43:11.000 に答える
0

JSON.Parse を使用して、取得した JSON をオブジェクトに変換できます。次に、アイテムをループし、それぞれを<option>オブジェクトに割り当ててから、それらを選択に追加できます。

JavaScript - ドロップダウン リストに配列を入力すると、オプション タグの作成方法が説明されます。

于 2013-10-24T07:59:25.683 に答える