php的javascript数组
我想使用jqueryajax向php发送一个javascript数组php的javascript数组,php,javascript,jquery,ajax,arrays,Php,Javascript,Jquery,Ajax,Arrays,我想使用jqueryajax向php发送一个javascript数组 $.post("controllers/ajaxcalls/users.php", { links: links }); 其中第二个“链接”是一个javascript数组 当我得到这个数组时: '1' ... '1' => "comment1" '2' => "link1" '3' => "link2" '4' => "link3" '2' ... '1
$.post("controllers/ajaxcalls/users.php",
{
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_解码来获取元素
我应该使用什么函数将其转换为json,以及如何在php端访问它
尝试了这一点,但它将提供与JSON.stringify()完全相同的输出(文档中也有这样的说法)
在几个小时内,我一直在努力解决这个问题……如果能得到一些具体的帮助,我将不胜感激
我只想将一个数组从javascript发送到php…为什么这么难://有一些jQuery插件可以编码为JSON(并从JSON解码)
例如,您可以查看(引用): 这个插件公开了四个新功能 在$或jQuery对象上:
:将javascript对象、数字、字符串或数组序列化为 JSONtoJSON
:快速地将JSON转换为Javascript,而且非常简单evalJSON
:从JSON转换为Javascript,但在 正在检查源是否正确 实际上是JSON,而不是其他的 抛出Javascript语句SecureValJSON
:在字符串周围加引号,并智能地转义任何字符串 引号、反斜杠或控件 人物quoteString
我不确定您是如何在PHP脚本中阅读此内容的,但如果它与您使用基于1的数组而不是基于0的数组有关,那么在javascript中,您可以使用以下方法删除null(第0个元素):
回答null部分时,JavaScript数组是数字的,并且基于零:
>>> var foo = [];
>>> foo[5] = 'Five';
"Five"
>>> foo
[undefined, undefined, undefined, undefined, undefined, "Five"]
相反,PHP允许缺少(和混合)键:
大堆
(
[5] =>五个
)
如果您想使用数组,我建议您将它们设置为零,并防止丢失值。否则,您可能会改用对象。这些对象提供与使用JSON.stringify()相同的输出。如果输出没有问题,如何访问元素?我尝试使用alert(jsonLinks[1][1]),但它给出了一个未定义的值。我没有得到空值:s…这些是什么?我从未访问过通过javascript发送的数组,但我猜它的$links=json_decode($\u POST['links']),然后只使用$links[1][1]等,但它不起作用。所以我想有些事情是错误的,为什么我会得到所有的空值?你得到空值是因为你从索引“1”开始你的数组。Javascript数组是基于零的,所以索引0(links[0]、links[1][0]和links[2][0])将为“null”(未设置)。您为什么再次问这个问题?你已经问过了
>>> var foo = [];
>>> foo[5] = 'Five';
"Five"
>>> foo
[undefined, undefined, undefined, undefined, undefined, "Five"]
<?php
$foo = array();
$foo[5] = 'Five';
print_r($foo);
?>
Array
(
[5] => Five
)