在PHP中,我有以下数组:
$variation = [
attribute_label => "Choose your Color",
attribute_name => "pa_choose-your-color",
variations => [
"819" => "Red",
"820" => "Blue",
"821" => "Green"
]
];
我将这个数组json编码发送回我的Ajax调用。
在json_encode之后,数组看起来像这样:
这种数组在Javascript中循环不是很方便。
在循环中,我将attribute_label附加到选择框之前的标签,将attribute_name附加到选择框的data-id属性,变量是选择框中的选项。变体的键不是可选的,它们是变体的ID,用于附加到选择框中选项的data-id。 我之前使用更简单的格式化数组,但由于产品可能有多种变化,我不得不更改数组的格式。
HTML示例
<label>Choose your Color</label>
<select data-id="pa_choose-your-color">
<option data-id="818">Red</option>
<option data-id="819">Blue</option>
</select>
我是否必须更改PHP数组的格式,还是有办法在javascript中循环使用这种对象?
答案 0 :(得分:0)
尝试使用循环构建选项:
var obj = {"attribute_label":"Choose your Color","attribute_name":"pa_choose-your-color","variations":{"819":"Red","820":"Blue","821":"Green"}};
for (variation in obj.variations) {
console.log("Data ID: " + variation);
console.log("Color: " + obj.variations[variation]);
}