[英]Sending multidimensional array via ajax
所以基本上這是我用於創建數組的jQuery和HTML代碼。 基本上,每個div具有類設置,並檢查是否具有屬性rel的span,如果具有,則將其插入array下的array中。 每個新的div.settign span rel屬性將插入到同一父數組下的另一個數組。
檢查此代碼以了解它-http://jsfiddle.net/xVuHx/ 。
也將其粘貼到此處-
jQuery(document).ready(function() {
var rel = [];
jQuery(".setting").each(function() {
rel.push(jQuery(this).find('span[rel]').map(function() {
return this.getAttribute('rel');
}).get());
});
jQuery("body").text(rel);
});
和html-
<div class="setting">
<span rel="Variable">Variable</span>
<span rel="Item">Item</span>
<span rel="Something">Something</span>
</div>
<div>
<span rel="Smth">Smth</span>
<span>Sec</span>
</div>
<div class="setting">
<span>Second</span>
<span rel="first">First</span>
<span rel="Third">Third</span>
</div>
它工作得很好,並顯示兩個數組-一個包含3個元素,一個包含2個元素,但是當我嘗試通過ajax將其傳遞到PHP文件時,ti給我[object Object]和var_dump($ array); 。 我也嘗試做foreach,但是它告訴我無效的參數傳遞給了foreach語句,所以我想我將數組錯誤地發送到ajax或數組被錯誤地制作了。
這是我的ajax代碼-
var myArray = jQuery(this).sortable("serialize") + "&type="+rel+"&action=update_homepage";
jQuery.post("'.admin_url("admin-ajax.php").'", myArray, function(response){
var info = response.slice(0,-1);
});
此ajax代碼是通過wordpress制作的,因此其ajax請求與默認AJAX請求略有不同。
您能檢查一下到底是什么問題嗎?
編輯:
剛剛嘗試輸出與print_r($myArray);
在php端,它輸出空字符串。
在瀏覽器控制台(網絡部分)中檢查AJAX請求中已發布數據的格式。
您可以在此stackexchange問題中找到有關在瀏覽器中打開控制台的信息。
JSON-js -JavaScript中的JSON。
要將對象轉換為JSON,請使用JSON.stringify
:
var json_text = JSON.stringify(your_object, null, 2);
將數組編碼為JSON,然后與Ajax請求一起發送。 要在PHP中解碼JSON,請使用json_decode
最好將其轉換為json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.