0

以下に示すように、入力要素の配列を持つフォームがあります。

<form method="post" action="sample.php">
<input type="text" name="field[txt][name]" />
<input type="text" name="field[txt][sex]" />
<input type="text" name="field[txt][location]" />
<br /><br />
<input type="text" name="field[num][age]" />
<input type="text" name="field[date][pod]" />
<input type="text" name="field[date][doj]" />
<br /><br />
<input type="submit" name="submit" />
</form>

php - print_r($_POST['field']) 通常どおりフォームを送信すると、次のような出力が得られます。jquery-post メソッドを使用して 'field[ ][ ]' 要素を送信して同じ結果を得るにはどうすればよいですか?

Array(
    [txt] => Array
        (
            [name] => sam
            [sex] => male
            [location] => somewhere
        )
    [num] => Array
        (
            [age] => 20
        )
    [date] => Array
        (
            [pob] => 2001-01-01
            [doj] => 2001-01-01
        )
)

どんな助けでも大歓迎です。

4

3 に答える 3

2

使用する:

var postData = $("#formId").serializeArray();
$.post(url, postData, function(response){ //do something });
于 2013-11-13T14:23:44.833 に答える
1

通常の JavaScript オブジェクトをdataパラメーターとして使用できます。jQuery は、それを url パラメーターとしてシリアル化します。

var data = {
    fields: {
        txt: {
            name: "sam",
            sex: "male",
            location: "somewhere"
        },
        num: {
            age: 20
        },
        date: {
             pob: "2001-01-01",
             doj: "2001-01-01"
        }
    }
};
$.post(url, data, function(answer){ ... });
于 2013-11-13T14:21:49.087 に答える
0

jquery .Serializre()を試してください

var values = $("form").first().serialize();

このコードはすべての値を取得し、「&field[txt][name]=foo1&field[txt][sex]=male」のように URL データにシリアル化します。

次に、Ajax を使用します。

$.ajax({url: $("form").first().attr("action"), data: values })
于 2013-11-13T14:26:08.157 に答える