2012-07-12 198 views
0

嘗試使用ajax請求將數組傳遞到php頁面。當前響應是ction Array() { [native code] }而不是實際的數組內容(im正數不爲空)。在這裏我的代碼:通過jquery ajax請求傳遞數組?

function GetPaginationPage(array1) { 
    var jsonString = JSON.stringify(array1); 

    $.ajax({ 
     type: "POST", 
     url: "includes/get_pagination_page.php", 
     data: {data : jsonString}, 
     success: function(data){ 
     $('.contestants_list').append(data); 
     } 
     }); 
}; 

更新,JSON,它現在轉到「未定義」

+1

可能的重複[發送數組與Ajax到PHP腳本](http://stackoverflow.com/questions/9001526/send-array-with-ajax-to-php-script) – 2012-07-12 15:16:18

+0

使用一個對象,而不是,一切都是preatty非常相似。像data = new Object()... data ['some_key'] ='some_value'; ...你可以發送它很好。 – Onheiron 2012-07-12 15:17:20

+0

你打電話給GetPaginationPage?當你使用console.log(array1)'時會發生什麼? – 2012-07-12 15:27:44

回答

0

數組轉換爲字符串傳遞給它,像這樣前:

array1.join(','); 

或者,如果它是一個複雜的陣列考慮JSON:

JSON.stringify(array1); 
+0

使用你的答案更新我的問題。它現在通過undefined – 2012-07-12 15:24:02

+0

這只是意味着你的變量沒有任何東西。你確定你在「array1」中有什麼嗎? – 2012-07-12 15:25:59

+0

是的。我可以打印它和大量的數據。有可能我沒有正確傳遞它? – 2012-07-12 15:26:35

0

我這樣做的方式是在JavaScript中創建數組作爲分隔符(〜)str ing &然後我用爆炸php函數加載到一個數組中。

1

這裏沒有理由使用JSON.stringify。只需將數組正常發送到PHP即可。

function GetPaginationPage(array1) { 
    $.ajax({ 
     type: "POST", 
     url: "includes/get_pagination_page.php", 
     data: { 
      data: array1 
     }, 
     success: function (data) { 
      $('.contestants_list').append(data); 
     } 
    }); 
} 

現在在PHP中,$_POST['data']將是一個數組。

UPDATE:你說你打電話GetPaginationPage這樣的:

GetPaginationPage(<?php echo $contestants_array; ?>); 

您需要更改到:

GetPaginationPage(<?php echo json_encode($contestants_array); ?>); 

當你echo在PHP中的數組,它被轉換爲字符串"Array",這是由JavaScript作爲Array對象解析的。

+0

認爲正在接近。它現在正在發佈'data:[object Object] data:[object Object] data:[object Object]'我們需要實際的對象,而不是其對象的表面 – 2012-07-12 15:35:26

+0

@JonahKatz:看起來好像它正在轉換爲字符串在某處。確保你沒有使用'.join(',')',這不適用於一個對象數組。當你使用console.log(array1)'時會發生什麼? – 2012-07-12 15:42:26