如何解析这个PHP生成的对象

时间:2013-10-24 15:54:15

标签: javascript prototypejs html-select

这是一些生成json(javascript)对象以响应Web服务请求的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
        ),
    )
)

1 个答案:

答案 0 :(得分:0)

将php数据转换为JSON格式后,可以使用生成的对象生成下拉列表。我想用PrototypeJS做这件事的最好方法是将它转换成哈希值。

$H(obj);

通过迭代键值对可以很容易地使用哈希:

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

以上假设键是实际值,而值是“标签”。使用数据集,您可能希望获取值对象并使用dotr表示法访问标签和值。

如果您使用的是Script.aculo.us,那么您可以考虑使用模块Builder创建HTML选项:

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

在这种情况下,您需要使用数组推送“内置”选项节点并将其附加到select元素中。