我使用$.getJSON()
将一些数据传递到服务器端(PHP,Codeigniter)并使用返回数据做一些工作。我发送到服务器的数据是以数组的形式出现的。
问题:当关联数组发送到服务器时,服务器端没有收到结果。但是,如果发送带有数字索引的普通数组,则会在服务器端接收数据。我如何将一组数据发送到服务器?
JS代码(不工作)
boundary_encoded[0]['testA'] = 'test';
boundary_encoded[0]['testB'] = 'test1';
$.getJSON('./boundary_encoded_insert_into_db_ajax.php',
{boundary_encoded: boundary_encoded},
function(json) {
console.log(json);
});
JS代码(工程)
boundary_encoded[0][0] = 'test0';
boundary_encoded[0][1] = 'test1';
$.getJSON('./boundary_encoded_insert_into_db_ajax.php',
{boundary_encoded: boundary_encoded},
function(json) {
console.log(json);
});
PHP代码
$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
)
)
)
这应该在两种情况下都起作用。你确定没有错字或其他错误吗? – Jon 2011-12-21 14:30:01
我复制粘贴了我实际运行的代码...我不知道为什么它不工作! – Nyxynyx 2011-12-21 14:33:03
是'boundary_encoded [0]'一个数组还是一个对象?如果它是一个数组,则不能执行'boundary_encoded [0] ['testA']',因为JavaScript不会执行关联数组。相反,它会为数组添加一个'.testA'属性,但它不会被枚举,这就是为什么会发送到服务器的原因。 – Graham 2011-12-21 14:33:11