簡體   English   中英

通過Ajax發送數組失敗

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM