1

loadpage の後に changepage を起動したいと思います。以下は私が使用するコードです。送信後、外部サイトでデータベース アクションが起動されます (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);
});
4

1 に答える 1

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 データを混在させることは非常に悪い習慣であることに注意してください。私はこのURLについて話している:"http://domain.com/dbaction.php?guid="+guid

GET または POST データのみが 1 つの要求に存在する必要があります。両方ではありません。(フォームの非表示フィールドを使用して)POSTで渡すことはできませんguidか?dbaction.php

于 2012-10-06T20:34:01.243 に答える