开发者

jQuery .dialog() + .post() problem

开发者 https://www.devze.com 2023-02-05 21:19 出处:网络
I have a form on modal dialog that need to be filled up and on pressing \"Save\" save results into database. I use following code to open form which is jQuery-ui dialog and jQuery .post() method. I do

I have a form on modal dialog that need to be filled up and on pressing "Save" save results into database. I use following code to open form which is jQuery-ui dialog and jQuery .post() method. I don't need to show anything when form is closed开发者_运维百科 and processed.

    $('#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');

This is code in process.php

$data = (object)array(
    'map' => $_POST['map'],
    'type' => $_POST['type'],
    'name' => $_POST['name']
);

Concepts::save($data);

I checked with alert($("#testform").serialize()) in "Save" function that parameters are actually being passed. Checked with Apache log that POST request is being sent. But it is still not working. If I just run php file passing all parametes in array without trying to get $_POST variables, data is saved. I don't understand why it is not working from dialog...


I believe you are having a timing issue. Please change your code from

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

to reflect the following

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

        }
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号