-1

以下は、Web サービス要求に応答して json (javascript) オブジェクトを生成する PHP コードです。このオブジェクトを反復処理する方法がわかりません。私は多くの例を見てきましたが、それらはjQueryにあり、selectオブジェクトでレンダリングする必要があるサブオブジェクトを持つケース(私のように)を扱いません。

このような JavaScript オブジェクトを使用して選択リストを作成する方法を教えてもらえますか?

値インデックスを持つサブオブジェクトもあります

data = object(
    0 => object(
        'label' = > 'test1',
        'value' = > 1
    ),
    1 => object(
        'label' = > 'test1',
        'value' = >
        0 = > object(
            'label' = > 'sub testing1',
            'value' = > 1
        ),
        1 = > object(
            'label' = > 'sub testing2',
            'value' = > 1
        ),
    ),
    3 = > object(
        'label' = > 'test3',
        'value' = >
        0 = > object(
            'label' = > 'sub testing - test 3',
            'value' = > 33
        ),
    )
)
4

1 に答える 1

0

PHP データを JSON 形式に変換したら、結果のオブジェクトを使用してドロップダウンを生成できます。PrototypeJS でこれを行う最善の方法は、ハッシュに変換することです。

$H(obj);

ハッシュは、次のようにキーと値のペアを反復処理することで簡単に使用できます。

var selectOpts = new String();
$H(obj).each(function(pair){
    selectOpts += "<option value=\"" + pair.key + "\">" + pair.value + "</option>";
});

上記は、キーが実際の値であり、値が「ラベル」であると想定しています。データセットを使用して、値オブジェクトを取得し、ドット表記でラベルと値にアクセスしたい場合があります。

Script.aculo.us を使用している場合は、モジュール Builder を使用して HTML オプションを作成することを検討してください。

selectOpt = Builder.node("option", { [attribs] });

その場合、「構築された」オプション ノードをアレイ プッシュし、select 要素内に追加する必要があります。

于 2013-11-21T15:51:33.080 に答える