[英]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.