[英]Sending array via Ajax fails
var labels = new Array();
<?php foreach($crud_data as $cd ) { ?>
labels['<?php echo $cd['name'] ; ?>'] = '<?php echo $cd['label'] ; ?>';
<?php } ?>
$.post('url.php' , { labels:labels} );
为什么我不能像这样发送labels
数组? 它没有在Firebug中显示任何内容。
我的console.log(labels)
结果:
[]
avatar
"avatar"
email
"email"
id
"id"
name
"name"
password
"password"
如果我像这样填充数组
<?php foreach($crud_data as $cd ) { ?>
labels.push('<?php echo $cd['label'] ; ?>');
<?php } ?>
$.post('url.php' , { labels:labels} );
它工作正常!
我现在明白了。 如果你有字符串键,你必须使用一个对象,而不是一个数组:
var labels = {};
JavaScript中的数组只能使用数字键来保存元素。 虽然您可以为数组分配任意属性,但它们不被视为数组的元素,因此被大多数处理数组的进程忽略。
另外,您可能需要查看jQuery.param
以了解jQuery如何将输入转换为可传输字符串并相应地调整数据结构。
labels['<?php echo $cd['name'] ; ?>'] =
看起来你想创建一个关联数组,它实际上是JavaScript中的一个对象(JavaScript没有专用的关联数组)。 因此,数组本身实际上是空的,因为您要向数组对象添加属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.