0

ajax について少し質問があります。

ajax を使用せずに基本的なフォームを送信するときは、通常、そのフィールドの name 属性にプレフィックスを付けて、配列にグループ化します。

例:form1[a], form1[b] and form2[a]フィールド名として、対応するプレフィックスでグループ化されたすべてを取得します。( form1[a, b] and form2[a])

今、私はajaxですべてを投稿したいと思います。php が ajax による括弧の処理に失敗するため、フィールドの配列を JSON でエンコードする必要があります (「form1[a"」を取得しました)。var_dump($_POST) を実行すると、フィールドがグループ化されず、名前にプレフィックス ! が含まれます。どうすれば良い結果を得ることができますか?

誰かが私の問題を理解してくれることを願っています。

編集 :

だから、私はそれを機能させる方法を見つけました。フォーム全体をシリアル化することはできませんでした。これは、関連する入力だけが必要であり、残りは必要なかったためです。

だから私の解決策はこれです:

シリアル化された各入力を配列に格納します。ブラケットが変換されたため、文字列をデコードします%5D

fields.push($(this).serialize());
decodeURI(fields.join('&'));

すべてを送信...

次にphpで:

parse_str($_POST, $data);

結果は次のとおりです。

array(form1 => array(a=1, b=2), b => array(a=1))

イェーイ:D

4

1 に答える 1

0

データを送信してみてくださいserialized。うまくいきました:

$.ajax({
    /// your parameters
    data: $('yourFormSelector').serialize()
});
于 2013-08-27T13:26:47.707 に答える