Php 使用$.getJSON将数组发送到服务器端

Php 使用$.getJSON将数组发送到服务器端,php,javascript,jquery,ajax,json,Php,Javascript,Jquery,Ajax,Json,我使用$.getJSON将一些数据传递给服务器端PHP、Codeigniter,并使用返回的数据做一些工作。我发送到服务器的数据是以数组的形式存在的 问题:将关联数组发送到服务器时,服务器端不会收到任何结果。但是,如果发送带有数字索引的普通数组,则会在服务器端接收数据。如何将数据数组发送到服务器 JS代码不工作 JS代码有效 PHP代码 错误消息 我建议使用将数组转换为JSON。如果您不能在PHP中使用json_encode函数来实现这一点,那么这里有几个JS等价物: 在getJSON调用中,使

我使用$.getJSON将一些数据传递给服务器端PHP、Codeigniter,并使用返回的数据做一些工作。我发送到服务器的数据是以数组的形式存在的

问题:将关联数组发送到服务器时,服务器端不会收到任何结果。但是,如果发送带有数字索引的普通数组,则会在服务器端接收数据。如何将数据数组发送到服务器

JS代码不工作

JS代码有效

PHP代码

错误消息


我建议使用将数组转换为JSON。如果您不能在PHP中使用json_encode函数来实现这一点,那么这里有几个JS等价物:


在getJSON调用中,使用

{boundary_encoded: JSON.stringify(boundary_encoded)},
而不是

{boundary_encoded: boundary_encoded},

这不起作用的原因是JavaScript不支持关联数组。本任务:

边界_编码[0]['testA']='test'

似乎在JS中工作,因为您可以为任何对象(包括数组)指定新属性。但是,它们不会在for循环中枚举

相反,必须使用对象文字:

边界_编码的[0]={'testA':'test'}


然后,您可以使用JSON.stringify将boundary_编码转换为JSON字符串,将其发送到服务器,并使用PHP的JSON_解码函数将字符串转换回对象数组。

这两种情况下都可以使用。你确定没有打字错误或其他错误吗?我复制粘贴了我实际运行的代码。。。我想知道为什么它不工作!边界编码[0]是数组还是对象?如果它是一个数组,则不能执行边界编码[0]['testA'],因为JavaScript不执行关联数组。相反,它将向数组中添加一个.testA属性,但它不可枚举,这就是为什么不会向服务器发送任何内容。它是一个关联数组!如何将此数组转换为对象,以便在关联键保持不变的情况下将其传递到服务器端?还是有更好的方法传递关联数组?JavaScript中没有关联数组。您可以使用索引数组,例如[1,2,3]或对象文本,例如{'testA':'foo'}。我正在尝试将数组从客户端Javascript发送到服务器端PHP。我想我需要使用object literal而不是javascript中不存在的关联数组来发送它。我不确定您的代码有多少依赖于数组的使用,但是是的。。。这将是一个更好的选择。
$boundary_encoded = $_GET['boundary_encoded'];
print_r($_GET);
    <b>Notice</b>:  Undefined index: boundary_encoded in <b>C:\xampp\htdocs\test\boundary\boundary_encoded_insert_into_db_ajax.php</b> on line <b>11</b><br />
Array
(
)
Array
(
    [boundary_encoded] => Array
        (
            [0] => Array
                (
                    [0] => test
                    [1] => test1
                )

        )

)
{boundary_encoded: JSON.stringify(boundary_encoded)},
{boundary_encoded: boundary_encoded},