2010-01-26 58 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']; 

希望帮助