-2

その前に「私は完全な初心者なので、5歳のように説明してください」と言いたい。私はこのよくある質問に対する多くの答えを見てきましたが、私の特定の問題に対する適切な答えを見つけることができませんでした。以下は、問題のスクリプトビットです。現在、ユーザーは注文番号を入力しています。これは、ajax呼び出しを介してphpプロセッサスクリプトに送信されます。プロセッサスクリプトは注文番号を検証してから、データを送り返します。data!= "NO"の場合、新しいページに送信されます。

<script type="text/javascript">
function resetTextFields()
{
    $("#orderNum").val("");                
}

function onSuccess(data, status)
{
    resetTextFields();
    // Notify the user the new post was saved
    $("#message").fadeIn(2000);
    data = $.trim(data);
    if(data != "NO")
    {
        location.href="labOrders.php";
    }
    else
    {
        $("#message").css("background-color", "#ff0000");
        $("#message").text("Not a valid order number...");
    }
    $("#message").fadeOut(2500);
}

$(document).ready(function() {
    $("#submitSearch").click(function(e){

        var formData = $("#labOrderFind").serialize();

        $.ajax({
            type: "POST",
            url: "labSearch.php",
            cache: false,
            data: formData,
            success: onSuccess
        });

        e.preventDefault();
    });


});

私がやりたいのはonSuccessifdata!= "NO"で、formDataをlabOrders.phpに再度POSTして、labOrders.phpがそれを使用してdbに対してより多くのルックアップを実行できるようにします。私はこれを多くの方法でやろうとしましたが、成功しませんでした。私はこれを間違った方法で行っていますか?POSTを使用できる限り、私はすべてのソリューションを受け入れます。

追加情報:jqueryとjquery.mobileがヘッドに読み込まれます(タブレットアプリです)。

たぶん、stackoverflowはこのような質問のためにnoobタグを必要とします。

4

2 に答える 2

0

変化する

location.href="labOrders.php";

$("#labOrderFind").submit();

「labOrderFind」の「アクション」は「labOrders.php」である必要があります。labOrders.phpで注文番号を使用する場合は、その値をリセットしないでください。

于 2012-07-24T17:35:14.997 に答える
0

私は自分の問題を解決しました。以下は、将来誰かがこのような問題に遭遇した場合の私の解決策です。

この関数を見つけました。

function post(URL, PARAMS) {
    var temp=document.createElement("form");
    temp.action=URL;
    temp.method="POST";
    temp.style.display="none";
    for(var x in PARAMS) {
        var opt=document.createElement("textarea");
        opt.name=x;
        opt.value=PARAMS[x];
        temp.appendChild(opt);
    }
    document.body.appendChild(temp);
    temp.submit();
    return temp;

}

次に、onSuccess関数を少し変更しました。

    function onSuccess(data, status)
{
    data = $.trim(data);
    if(data != "NO")
    {
                    post("labOrders.php", {
                        orderNum:data
                    })
    }
    else
    {
            resetTextFields();
        $("#message").css("background-color", "#ff0000");
        $("#message").text("Not a valid order number...");
    }
    $("#message").fadeOut(2500);
}
于 2012-07-25T14:48:47.793 に答える