У меня есть форма с массивом входных элементов, как показано ниже.
<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
)
)
Любая помощь будет высоко оценен.
Вы можете использовать обычный объект 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){ ... });
Использование:
var postData = $("#formId").serializeArray();
$.post(url, postData, function(response){ //do something });
попробуйте jquery .Serializre()
var values = $("form").first().serialize();
Этот код получит все значения и сериализует данные в Url Data: "& field [txt] [name] = foo1 & field [txt] [sex] = male"
то вы используете Ajax:
$.ajax({url: $("form").first().attr("action"), data: values })
data={mc: $('.mc').serialize()}
и на стороне phpparse_str($_POST['data']['mc']);print_r($field);