jQuery .dialog()+ .post()问题

时间:2011-01-20 02:30:31

标签: jquery jquery-ui

我在模态对话框上有一个表单,需要填写并按“保存”将结果保存到数据库中。我使用以下代码打开表单,它是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变量,则保存数据。我不明白为什么它不能在对话框中工作......

1 个答案:

答案 0 :(得分:0)

我相信你有时间问题。请从

更改您的代码
"Save": function() {
            $.post('process.php', $("#cform").serialize());
            $(this).dialog('close');
        }

反映以下内容

"Save": function() {
            $.post('process.php', $("#cform").serialize(), function () {
                  $('#cdialog').dialog('close');
            });

        }