我有一个模式对话框上的表单,需要填写,并按下“保存”保存结果到数据库。我使用以下代码打开表单,即jQuery-ui对话框和jQuery .post()方法。当表单被关闭和处理时,我不需要显示任何内容。
$('#cdialog').dialog({
autoOpen: false,
modal: true,
buttons: {
"Save": function() {
$.post('process.php', $("#cform").serialize());
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
}
});
$('#cdialog').dialog('open');
这是process.php中的代码
$data = (object)array(
'map' => $_POST['map'],
'type' => $_POST['type'],
'name' => $_POST['name']
);
Concepts::save($data);
我在“保存”函数中用alert($("#testform").serialize())
检查了参数是否确实被传递了。已使用Apache日志检查正在发送POST请求。但它仍然不起作用。如果我只是运行php文件,传递数组中的所有参数,而不尝试获取$_POST变量,数据就会保存下来。我不明白为什么它不能在对话框中工作...
发布于 2011-01-20 11:10:44
我相信你在时间上有问题。请将您的代码从
"Save": function() {
$.post('process.php', $("#cform").serialize());
$(this).dialog('close');
}
以反映以下内容
"Save": function() {
$.post('process.php', $("#cform").serialize(), function () {
$('#cdialog').dialog('close');
});
}
https://stackoverflow.com/questions/4742935
复制相似问题