首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery .dialog() + .post()问题

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

Stack Overflow用户
提问于 2011-01-20 10:30:31
回答 1查看 3.9K关注 0票数 1

我有一个模式对话框上的表单,需要填写,并按下“保存”保存结果到数据库。我使用以下代码打开表单,即jQuery-ui对话框和jQuery .post()方法。当表单被关闭和处理时,我不需要显示任何内容。

代码语言:javascript
运行
复制
    $('#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中的代码

代码语言:javascript
运行
复制
$data = (object)array(
    'map' => $_POST['map'],
    'type' => $_POST['type'],
    'name' => $_POST['name']
);

Concepts::save($data);

我在“保存”函数中用alert($("#testform").serialize())检查了参数是否确实被传递了。已使用Apache日志检查正在发送POST请求。但它仍然不起作用。如果我只是运行php文件,传递数组中的所有参数,而不尝试获取$_POST变量,数据就会保存下来。我不明白为什么它不能在对话框中工作...

EN

回答 1

Stack Overflow用户

发布于 2011-01-20 11:10:44

我相信你在时间上有问题。请将您的代码从

代码语言:javascript
运行
复制
"Save": function() {
            $.post('process.php', $("#cform").serialize());
            $(this).dialog('close');
        }

以反映以下内容

代码语言:javascript
运行
复制
"Save": function() {
            $.post('process.php', $("#cform").serialize(), function () {
                  $('#cdialog').dialog('close');
            });

        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4742935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档