1

我刚刚尝试过并且或多或少地放弃了将数组发送到 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 来实现这一点,但是任何指导都可能有助于实现我想要的方式。

4

2 回答 2

1

现在看起来你正在传递一个函数作为请求参数。我只是将代码拉出并首先组装您的地图,然后将其传递给 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");
}
于 2010-07-01T14:45:56.283 回答
0

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

<input name="foo[]" value="blahblah"/>
<input name="foo[]" value="blahblah"/>

将产生一个数组,如:

array("foo" => array("blahblah", "blahblah"));

我认为您的 中不可能有许多键/值对requestArray[],就像您尝试做的那样,例如在服务器上获取类似:

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

所以我认为你的方法涉及在客户端序列化子数组并在服务器上解析它,在这种情况下,似乎是正确的。

于 2010-07-01T14:48:36.370 回答