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