2010-01-26 119 views
-1

我想用jquery ajax發送一個javascript數組到php。發送數組到PHP從JavaScript?

$.post("controllers/ajaxcalls/users.php", 
{ 
    links: links 
}); 

其中第二個'links'是一個javascript數組。

當我得到這個數組:

'1' ... 
    '1' => "comment1" 
    '2' => "link1" 
    '3' => "link2" 
    '4' => "link3" 
'2' ... 
    '1' => "comment2" 
    '2' => "link4" 

然後使用:

var jsonLinks = JSON.stringify(links); 
alert(jsonLinks); 

會給我:

[null,[null,"comment1","link1","link2","link3"],[null,"comment2","link4"]] 

在我看來,什麼是錯的。並且我不能在php端使用json_decode來獲取元素。

我應該使用什麼函數將其轉換爲json,以及如何在php端訪問它?在幾個小時內已經在這方面掙扎...會感激一些幫助。

+2

你嘗試了嗎? – Gumbo 2010-01-26 10:45:25

回答

1

我不知道,如果你的示例將工作如果(你嘗試了嗎?)不,你可以使用JSON發送您的數組,然後將它與PHP的解碼(http://www.php.net/manual/en/function.json-decode.php

書面的JSON網站: 的stringifier方法可以採取OPTI代替功能。它將在結構中每個值的toJSON方法(如果有)之後調用。它將傳遞每個鍵和值作爲參數,並且這將被綁定到持有該鍵的對象。返回的值將被字符串化。

排除了在JSON中沒有表示的值(例如函數和未定義)。

非確定數字被替換爲null。替代其它值,您可以使用替代品的功能是這樣的:

function replacer(key, value) { 
    if (typeof value === 'number' && !isFinite(value)) { 
     return String(value); 
    } 
    return value; 
} 

全頁可以在這裏找到:http://www.json.org/js.html

+0

是的,我試過了,它似乎沒有工作。 – ajsie 2010-01-26 10:49:09

+0

但如何?閱讀我更新的帖子。 – ajsie 2010-01-26 11:17:18

3

您可以使用json_decode來讀取通過的json值。看看這個post

+0

閱讀我更新的帖子。 – ajsie 2010-01-26 11:14:07

+0

在您更新的帖子中,您顯示的數組是無效的javascript。請發佈您用來分配數組的真實JavaScript代碼。 – 2010-01-26 12:28:58

0

您可以隨時序列化數組,像這樣:

books: $.param(books) 

作爲工作如下:

$.param({a: [1, 2]}) // output: "a=1&a=2" 
0

IM仍然相當新太說,也許這種方法心不是最安全的,但你可以總是把你的JavaScript數組轉換成一個字符串,然後通過URL的URL傳遞給GET。

這樣:

for(var i=0;i < jsarray.length;i++) 
{ 
    var x = jsarray[i]; 
    urlstring += "myvalue[]="+x+"&"; 
} 

document.location.href = "mypage.php?"+urlstring; 

,然後PHP將是:

$phparray = $_GET['myvalue']; 

希望幫助