因为我对php更精通php感谢js我会尝试从php的角度解释我需要什么。我需要传递一个javascript函数数组:
array('fieldname' => 'value', 'fieldname2' => 'value2' ...);
该功能可以做到这一点
foreach(array as k => v) {
<input name='fieldname' value='value'/>
<input name='fieldname2' value='value2'/>
...
}
我不知道怎么做,我明白js没有多维数组,所以我想知道在javascript中这样做的正确方法是什么?
P.S。我知道有一个库可以为js提供php函数,但我想了解在纯js中执行此操作的最佳实践。
非常感谢
答案 0 :(得分:5)
<script type="text/javascript">
// <![CDATA[
// Create an associative array.
var array = {'fieldname': 'value', 'fieldname2': 'value2'};
for (var key in array) {
// Create an input element and set its name and value.
var input = document.createElement("input");
input.name = key;
input.value = array[key];
// There's no simple "insert an element right here"; you have to pick
// where in the document to add the input box.
document.body.appendChild(input);
}
// ]]>
</script>
答案 1 :(得分:3)
在Javascript中没有关联数组。有些对象提供键值对,但它们确实不应该与关联数组混淆。你可以这样做:
var myObject = {
key1: 'value1',
key2: 'value2'
};
for (var i in myOjbect) {
var thisVal = myObject[i];
}
这将允许您迭代您创建的对象的属性。同样,虽然这与您所要求的类似,但它与PHP中的关联数组并不完全相同。
答案 2 :(得分:0)
我可能会遗漏一些东西,因为当你说多维数组时我不太清楚你的意思...你在代码中显示的内容通常被称为关联数组。
var fields={'fieldname' : 'value', 'fieldname2' : 'value2'};
for(var key in fields){
var elm=document.createElement('input');
elm.name=key;
elm.value=fields[key];
document.body.appendChild(elm);
}
答案 3 :(得分:0)
js中的多维数组:
a={a:{a:1,b:2},b:{a:1,b:2}};
a.a.a=5;
a['a']['a']=7;