-1

下面是一些 PHP 代码,它生成一个 json (javascript) 对象以响应 Web 服务请求。我不确定如何迭代这个对象。我查看了很多示例,它们都在 jQuery 中,并且不处理需要在我的选择对象中呈现的子对象的情况(就像我所做的那样)。

谁能告诉我如何使用这样的 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] });

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

于 2013-11-21T15:51:33.080 回答