如何通过jQuery.ajax将JavaScript数组发送到PHP?

我正在尝试通过jQuery.ajax将JavaScript数组发送到PHP页面,但该数组仅使用空值发送。

如果我在Chrome上打开F12控制台并检查JS对象,它就在那里。 全部填满了。 但是当我使用ChromePhp工具记录PHP变量时,它只显示空白值(同样,如果我遍历php-array,回显它的值,我得到所有空白)。

我在这里很困惑。

这是我的示例代码:

     var newUsers = []; newUser = []; newUser['nome'] = 'alvaro'; newUser['idade'] = '34'; newUsers.push(newUser); newUser1 = []; newUser1['nome'] = 'bia'; newUser1['idade'] = '7'; newUsers.push(newUser1); newUser2 = []; newUser2['nome'] = 'alice'; newUser2['idade'] = '2'; newUsers.push(newUser2); $.ajax({ url: "testcookie.php", type: "GET", data: { 'newUsers[]': newUsers } });     

根据第一条评论更新 。 现在我得传递对象,但不知道如何读取它的属性。 已经尝试了$ user [‘nome’]没有结果。

      //var newUsersObj = {}; var newUsers = []; newUser = {}; newUser['nome'] = 'alvaro'; newUser['idade'] = '34'; newUsers.push(newUser); newUser1 = {}; newUser1['nome'] = 'bia'; newUser1['idade'] = '7'; newUsers.push(newUser1); newUser2 = {}; newUser2['nome'] = 'alice'; newUser2['idade'] = '2'; newUsers.push(newUser2); $.ajax({ url: "testcookie.php", type: "POST", data: { 'newUsers[]': newUsers }, success: function () { }, error: function () { } });     

只需传递数组或对象,jQuery就会自动将数组或对象转换为正确的参数,如a = [1,2] – > a [] = 1&a [] = 2

  data: { 'newUsers': newUsers } 

实现这一目标的内部function是http://api.jquery.com/jQuery.param/

得到它了!

要在PHP中正确访问JavaScrtipt对象,我需要在推送数组时使用JSON.stringify它们。 然后,在PHP上, json_decode将它们编码为PHP对象,并使用“ – >”运算符访问它们的属性。

最终解决方案如下:

 nome . " - Idade: " . $usr->idade); } } else { ?>