我需要在myClickHandler()函数中添加一些东西

时间:2012-01-25 23:18:46

标签: php javascript json

下面我有一个Json函数和一些它检索的php代码。

JavaScript代码:

function postback(){
    if(validation()){
        $.getJSON(
            {"room_no":$("#room").val()},
            function(json){
                $("#roomAlert").html(json.msg)
        });
    }
}

PHP代码:

if (isset($_POST['prequestion'])) {
    $roomquery = "
                 SELECT Room
                 FROM Room
                 WHERE
                 (Room = '".mysql_real_escape_string($roomChosen)."')
                 ";

    $roomnum = mysql_num_rows($roomresult = mysql_query($roomquery));
    mysql_close();

    if($roomnum ==0){
        $msg = "This Room is Invalid";
    } else {

        $msg = "";
    }

    $d = array("msg" => $msg);
echo json_encode($d);

}



?>

我的问题是我有一个myClickHandler()函数,如果满足validation()并且如果在php $ msg =“”中遇到postback()函数,我想要showConfirm();验证已满足,但我如何满足postback()要求?

下面是myClickHandler()函数:

function myClickHandler(){
     if(validation()){
        showConfirm();
     }
}

1 个答案:

答案 0 :(得分:0)

您需要使用回调来完成此任务:

function postback(callback){
if(validation()){
    $.getJSON(
        {"room_no":$("#room").val()},
        function(json){
            $("#roomAlert").html(json.msg);
            callback(json.msg);
    });
}

}

function myClickHandler(){
     if(validation()){
        postback(function(message) {
            if (message == "")
                showConfirm();
        });
     }
}

如果您不熟悉JavaScript中回调的工作原理,请查看以下文章:

http://recurial.com/programming/understanding-callback-functions-in-javascript/