Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过ajax传递数组_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 通过ajax传递数组

Javascript 通过ajax传递数组,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我对jQuery在同一页面上执行的东西还比较陌生。到目前为止,我只通过ajax传递了一个值,它工作得很好。现在,我需要通过ajax传递一个由复选框创建的数组 我的表单html,由php动态创建: <input type=checkbox class=box name=box[] value=".$row['DoosID']." /> 我的PHP: $boxlist = json_encode($box); foreach($boxlist as $boxvalue){ //

我对jQuery在同一页面上执行的东西还比较陌生。到目前为止,我只通过ajax传递了一个值,它工作得很好。现在,我需要通过ajax传递一个由复选框创建的数组

我的表单html,由php动态创建:

<input type=checkbox class=box name=box[] value=".$row['DoosID']." />
我的PHP:

$boxlist = json_encode($box);

foreach($boxlist as $boxvalue){
   // Do something with every value
 }

这在提交时给了我一个javascript错误,表示未定义框。

您可能希望像这样引用php文件:
url:'../backorder.php'
(双点)。至少,我总是这样做。

改变这一点:

data    : box : Box, backorderdate: BackorderDate, // invalid way of sending
为此:

data    : {box : Box, backorderdate: BackorderDate}, // valid way

数据 类型:纯对象或字符串
要发送到服务器的数据。如果尚未转换为字符串,则会将其转换为查询字符串。它被附加到GET请求的url。请参阅processData选项以防止此自动处理。对象必须是键/值对


为什么不尝试将所有数据值封装在一个开放和封闭的卷焊(
{and}
)中呢。 否则它将与
$.ajax
方法的语法冲突


我认为这是造成问题的原因。

您以错误的方式发送数据值-

数据属性应始终是JavaScript对象。它的属性被序列化为常规查询字符串(对于GET请求)或常规post正文参数字符串(对于post请求)。然后将该序列化字符串与AJAX请求一起发送到服务器。
在服务器上,您可以通过GET或POST读取数据对象的属性,就像它们作为简单的请求参数发送一样。就像属性是表单中的字段一样。

试试这个:

$.ajax({
    type    :'POST',
    url     :'./backorder.php',
    data    : 'box='+Box+'&backorderdate='+BackorderDate,
    dataType:"json",
    success: function(data){
        // Do Something
    }

});

有关更多信息,请参见使用jQuery的序列化方法之一:您没有
box
类&这是无效的代码
数据:box:box
。这里有很多问题。
$.ajax({
    type    :'POST',
    url     :'./backorder.php',
    data    : 'box='+Box+'&backorderdate='+BackorderDate,
    dataType:"json",
    success: function(data){
        // Do Something
    }

});