簡體   English   中英

Ajax Call的響應

[英]response of Ajax Call

我正在使用ajax進行小型表單驗證。 用戶提供密鑰,並且在提交表單時,我調用ajax方法validate_key。

我的功能是

function validate_key(){
    $key = $_POST['key'];
    $id = $this->uri->segment(3);
    $query = $this->db->get_where('mc_boxes', array('idmc_boxes' => $id));
    $row = $query->row();
    $download_key = strtolower($row->downloadkey);
    if($download_key == $key){
        return true;
    }
    else{
        return false;
    }
}

jQuery是

$(document).ready(function() {
    $('#submit').click(function() {
        var key = $('#downloadkey').val();
        var dataString = {KEY:key};
        $.ajax({
            url: "/index.php/home/validate_key",
            type: 'POST',
            data: dataString,
            success: function(msg) {
            }
        });
        return false;
    });
});

和形式是

<form name="form" method="post"> 
   <input id="downloadkey" name="downloadkey" type="text" />
   <input type="submit" id="submit" name="submit" value="submit"/>
</form>

我檢查了用戶提供的數據庫密鑰,如果密鑰正確,則允許用戶查看頁面並在會話中設置密鑰;如果密鑰不正確,則發出警報消息,然后再次呈現表單

如何檢查響應?

謝謝

我猜你需要從你的PHP頁面呼應

if($download_key == $key){
        echo "true";
    }
    else{
        echo "false";
    }

然后,在Ajax成功處理程序中,您可以檢查回調中的響應。 確保還通過調用preventDefault()函數來阻止默認操作,以使該頁面不會被發布。

$(document).ready(function() {
    $('#submit').click(function(e) {
       e.preventDefault();
        var key = $('#downloadkey').val();
        var dataString = {KEY:key};
        $.ajax({
            url: "/index.php/home/validate_key",
            type: 'POST',
            data: dataString,
            success: function(msg) {
                  if(msg=="true") 
                    {
                       alert("do something")
                    }
                    else
                    {
                       alert("do something else")
                    }                        

            }
        });           
    });
});

您需要在頁面上輸出一些內容。 如果僅return truereturn false則不會輸出任何內容。

因此,請執行以下操作:

echo "OK"

然后您可以在JavaScript中執行此操作:

if(msg == "OK"){ .. }

您可以做的另一件事是返回HTTP狀態代碼,例如

header("HTTP/1.1 200 OK");

您可以在您的jquery中進行檢查。 但是,使用第一種方法更為有用,因為您可以在頁面上擁有任意數量的輸出,包括不同的錯誤消息等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM