我有一个包含动态生成字段的表单。我需要使用.serialize()发布表单。
的Ajax
$("#save").click(function () {
formData = $('#myForm').serialize();
$.ajax({
type:"POST",
url: base_url +'home/save',
data: {
formData:formData,
csrf_test_name: csrf_token
},
success: function(response){
console.log(response);
alert(response);
}
});
});
我需要使用输入字段名称发布所有数据。现在我得到了所有结果:
echo $fomdata=$this->input->post('formData');
输出
room_count_new=5&room_id=1&bedcount_1_1=1&extra_age_1_1_1=middle&extra_age_1_1_2=0&bedcount_1_2=0
但我想发布相应的名字。
答案 0 :(得分:2)
删除具有formdata
属性的对象,只发送序列化字符串并将csrf
添加到其末尾,或者将csrf作为隐藏输入添加到表单中并让它序列化也在serialize()
$("#save").click(function() {
var formData = $('#myForm').serialize();
formData += '&csrf_test_name=' + csrf_token
$.ajax({
type: "POST",
url: base_url + 'home/save',
data: formData,
success: function(response) {
console.log(response);
alert(response)
}
});
});
然后在php中访问与表单相同的名称。
$fomdata=$this->input->post();
$roomCount = $fomdata['room_count_new'];
$csrfToken = $fomdata['csrf_test_name'];