我有一个这样的表格:
<form id="cform">
<label>folder name:</label>
<input type="text" name="Folder[name]" />
<input id="cfolder" type="submit" value="create" />
</form>
我想在jQuery ajax中提交表单,所以我有这样的代码:
$.ajax({
type: "POST",
url: "/folder/create",
data: $('#cform').serialize(),
success: function(msg){
//sucess
}
});
到目前为止,这一切都很简单,但现在我想提交一个额外的动态ID($ id值可用)以及整个表单。我怎样才能做到这一点?我试过这个:
data: $('#cform').serialize()+"&Folder[id]="+$id,
但它没有用,服务器端没有得到id。这里的棘手部分是Folder [name],Folder [id], 因为服务器端接收php中的数据,如下所示:
if(isset($_POST['Folder'])){
//assign data here
}
希望这是明确的,并感谢任何建议。
答案 0 :(得分:3)
作为替代建议:
您可以使用.serializeArray
[docs]和$.param
[docs]。然后jQuery将处理所有编码:
var data = $('#cform').serializeArray();
data.push({name: "Folder[id]", value: $id});
// later
data: $.param(data);
我不明白你是否遇到$_POST['Folder']
的问题,但是如果你在末尾使用带括号的名字,那么PHP会将数据解析成一个数组。
因此,您可以使用$_POST['Folder']['name']
和$_POST['Folder']['id']
访问数据。
有关详细信息,请查看Variables From External Sources。
答案 1 :(得分:0)
如何以这种方式发送数据 -
data: $('#cform').serialize()+"&FolderId=" + $id
然后尝试在后端检查$_POST['FolderId']
?
jsfiddle上的example。
答案 2 :(得分:0)
你不使用这个
`data: $('#cform').serialize()+"&Folder[id]="+$id,`
连接,使用这个
data: $('#cform').serialize()+"&Folderid="+$id,
并在php文件中通过
获取if(isset($_POST['Folderid'])){
//assign data here
}