[英]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 true
或return false
則不會輸出任何內容。
因此,請執行以下操作:
echo "OK"
然后您可以在JavaScript中執行此操作:
if(msg == "OK"){ .. }
您可以做的另一件事是返回HTTP狀態代碼,例如
header("HTTP/1.1 200 OK");
您可以在您的jquery中進行檢查。 但是,使用第一種方法更為有用,因為您可以在頁面上擁有任意數量的輸出,包括不同的錯誤消息等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.