这是一些生成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
),
)
)
答案 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元素中。