Php 带有动态变量数组的jQuery.post

Php 带有动态变量数组的jQuery.post,php,jquery,ajax,posting,Php,Jquery,Ajax,Posting,我刚刚尝试过并或多或少地放弃了向jQuery post函数发送数组,然后将其作为post变量进行布局 我在这里读过很多类似的问题,但似乎并没有一个能完全理解 我尽了我所能,结果如下 function sendValue(requestArray, requestAction){ $.post("requests.php", { request: requestAction, 'requestArray[]': function () { $.each(requestArray, function

我刚刚尝试过并或多或少地放弃了向jQuery post函数发送数组,然后将其作为post变量进行布局

我在这里读过很多类似的问题,但似乎并没有一个能完全理解

我尽了我所能,结果如下

function sendValue(requestArray, requestAction){
$.post("requests.php", { request: requestAction, 'requestArray[]': function () { $.each(requestArray, function(key, value) { return key: value; }); } }, function(data){    $('#display').html(data.returnFromValue);

 }, "json");
}

不对的树,吠叫?此后,我通过序列化requestArray的内容并将其传递给PHP作为parse_str来实现这一点,但任何指导都可能有助于实现我想要的方式。

现在,看起来您正在将函数作为请求参数传递。我只是把代码拉出来,首先组装地图,然后把它传递给post函数

function sendValue(requestArray, requestAction){
   var requestParameters = {};
   requestParameters["request"] = requestAction;
   $.each(requestArray, function(key, value) {
      requestParameters[key] = value;
   });
   $.post("requests.php", requestParameters, function(data){ $('#display').html(data.returnFromValue); }, "json");
}
如果你真的想让它们留在地图上,而不是把它们展平,也许可以试试这样的方法。我不确定PHP是否会自动处理它,但是您可以自己编写一些PHP代码来组装映射

function sendValue(requestArray, requestAction){
   var requestParameters = {};
   requestParameters["request"] = requestAction;
   $.each(requestArray, function(key, value) {
      requestParameters["requestArray[" + key + "]"] = value;
   });
   $.post("requests.php", requestParameters, function(data){ $('#display').html(data.returnFromValue); }, "json");
}

现在看起来您正在将函数作为请求参数传递。我只是把代码拉出来,首先组装地图,然后把它传递给post函数

function sendValue(requestArray, requestAction){
   var requestParameters = {};
   requestParameters["request"] = requestAction;
   $.each(requestArray, function(key, value) {
      requestParameters[key] = value;
   });
   $.post("requests.php", requestParameters, function(data){ $('#display').html(data.returnFromValue); }, "json");
}
如果你真的想让它们留在地图上,而不是把它们展平,也许可以试试这样的方法。我不确定PHP是否会自动处理它,但是您可以自己编写一些PHP代码来组装映射

function sendValue(requestArray, requestAction){
   var requestParameters = {};
   requestParameters["request"] = requestAction;
   $.each(requestArray, function(key, value) {
      requestParameters["requestArray[" + key + "]"] = value;
   });
   $.post("requests.php", requestParameters, function(data){ $('#display').html(data.returnFromValue); }, "json");
}

据我所知,如果在表单输入中添加方括号,PHP将期望该键包含一个平面子数组,因此:

<input name="foo[]" value="blahblah"/>
<input name="foo[]" value="blahblah"/>
我认为在您的
requestArray[]
中不可能有大量的键/值对,就像您正在尝试做的那样,例如,在服务器上执行以下操作:

array("foo" => array("bar" => "baz, "hehe" => "hahah"))

因此,我认为您的方法,包括在客户端序列化子数组并在服务器上解析它,在本例中,似乎是正确的方法

据我所知,如果在表单输入中添加方括号,PHP会希望该键包含一个平面子数组,因此:

<input name="foo[]" value="blahblah"/>
<input name="foo[]" value="blahblah"/>
我认为在您的
requestArray[]
中不可能有大量的键/值对,就像您正在尝试做的那样,例如,在服务器上执行以下操作:

array("foo" => array("bar" => "baz, "hehe" => "hahah"))
因此,我认为您的方法,包括在客户端序列化子数组并在服务器上解析它,在本例中,似乎是正确的方法