0

私の機能に問題があります。

がある:

function set_session(session_name, hodonota) {
    var link = '/run/set_session.html?what=' + session_name + '&val=' + hodonota;
    $("#test").load(link, function (response, status, xhr) {
        if (status == "error") {
            var msg = 'Error';
            alert(msg);
        }
    });
}

チェックデータ用の他の機能があります:

function make() {
    var error = false;
    var a = $("#val").val();

    if (a != '') {
        set_session('a', a);
    } else {
        error = true;
    }

    if (error == false) {
        window.location.href = "/sended.php";
    }
}

make と value if '' を試してみると、すべて問題ありませんが、値 != '' の場合、windows.location は set_session が完了する前に開始します。セッションアラート「エラー」を設定します:(

助けてくれてありがとう。

4

2 に答える 2

0

これはどのように?-syntax については @11684 に感謝しcomplete()ます。

function make() {

    var val = $("#val").val();

    if (val != '') {
        set_session('a', val, toSendPage);
    }
}

function set_session( session_name, hodonota, callback ) {

    var link = '/run/set_session.html?what=' + session_name + '&val=' + hodonota;

    $("#test").load(link, function (response, status, xhr) {

        if (status == "error") {
            var msg = 'Error';
            alert(msg);
        }

    }).complete( callback );
}

function toSentPage() {
    window.location.href = "/sended.php";
}

はい、「送信」ではなく「送信」です。

于 2013-10-30T16:51:16.577 に答える
0

successユーザーをリダイレクトしているので、リダイレクトを関数のコールバック関数にフックするだけですload()。コード全体は次のようになります。

function make() 
{
    var error = false,
        a = $.trim($("#val").val());

    if(a != '')
    {
        var link = '/run/set_session.html?what=a&val=' + a;
        $("#test").load(link, function (response, status, xhr) {
            if (status == "error") {
                var msg = 'Error';
                alert(msg);
            }
            else
            {
                window.location.href = '/sended.php';
            }
        });
    } 
    else 
    {
        return false;
    }
}

私はあなたのコードにもいくつかの調整を加えました。あ、ちなみに「send」の過去分詞は「send」ではなく「sent」です。

@YuriyGalanter が有効な主張をしていることにも注意してください。サイトにセッション変数の操作を許可する AJAX スクリプトがある場合、これは深刻なセキュリティ上の問題を示している可能性があります。

于 2013-10-30T16:48:16.790 に答える