1

私は試してみましたが、多かれ少なかれ、配列をjQueryポスト関数に送信することをあきらめました。これは、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

現在、リクエストパラメーターとして関数を渡しているようです。そのコードを取り出して、最初にマップを組み立ててから、ポスト関数に渡します。

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 に答える