在变量发布后的loadpage后更改页面

时间:2012-10-06 20:23:01

标签: jquery-mobile

我想在加载后触发更改页面。 以下是我使用的代码。 提交后,将在外部站点(使用loadPage)触发数据库操作。这样可行。 接下来,我想更改为发布了guid(唯一ID)变量的另一个页面。

我不能让这个工作。 希望有人可以。提前谢谢。

        $(document).on('pageinit', '#page1', function(){

    $('form').submit(function(){

        var guid = GUID();
        $.mobile.loadPage( "http://domain.com/dbaction.php?guid="+guid, {
        type: "post", 
        data: $("form#addtegel").serialize()

        });     
        return false; 
    $.mobile.changePage ($("#page2"),{ transition: "slideup"} );

     });


   });

$(document).on('pageinit', '#page2', function(){
DoSomething(guid);
});

1 个答案:

答案 0 :(得分:0)

首先,你需要让guid成为一个全局变量。目前,它是您的表单提交的本地,因此它不能在表单提交操作之外访问。

其次,而不是使用loadPage() - 这是jQuery Mobile的changePage()调用的内部函数 - 请使用$.ajax(),如下所示:

var guid;
$(document).on('pageinit', '#page1', function(){

    $('form').submit(function(){

        window.guid = GUID();
        $.ajax({
            url: "http://domain.com/dbaction.php?guid="+guid,
            type: "post", 
            data: $("form#addtegel").serialize(),
            success: function() {
                $.mobile.changePage ($("#page2"), { transition: "slideup"} );
            }
        });
        return false; 
     });

   });

$(document).on('pageinit', '#page2', function(){
    DoSomething(window.guid);
});

另外,请注意混合GET和POST数据是一个非常坏的习惯。我在谈论这个网址:"http://domain.com/dbaction.php?guid="+guid

单个请求中只应存在GET或POST数据,而不是两者。是否无法在POST中将guid传递给dbaction.php(使用表单中的隐藏字段)?