簡體   English   中英

通過ajax發送多維數組

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

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