2015-05-13 60 views
1

我有問題。我在我的外部javascript(ajax)中使用了一個刪除函數,以便在我的PHP文件中執行刪除查詢。onreadystatechange裏面應該是什麼?

我想知道的是onreadystatechange函數應該是什麼。在剛剛顯示錶格之前,有一個先前的函數。裏面的onreadystatechange功能

document.getElementById("divTable").innerHTML=xmlhttp.responseText; 

所以現在我很困惑,難道我把同樣的事情還是?我如何獲得查詢執行以及在刪除記錄後顯示新結果的表格?

function.js JavaScript文件:

function deleteThis(count){ 

var name = document.getElementById("row"+count).innerHTML; 
var page = "database.php"; 
var parameters = 'name='+name+'&action=delete' 
var xmlhttp = new XMLHttpRequest(); 

if(confirm('Are you sure you want to delete this?')==true){ 

if(xmlhttp==null){ 
    alert("Your browser does not support ajax!"); 
    return false; 
    } 
xmlhttp.onreadystatechange=function(){ 
//what should be in here 
}; 
    xmlhttp.open("GET", page+"?"+parameters, true); 
    xmlhttp.send(null); 
} 
} 

裏面的database.php中的文件:

     . 
         . 
       Other lines of code 
         . 
         . 


function deleteRow($name){ 
    $table_info = "info"; 

    $query_string = "delete from $table_info where id = '$name'"; 
    $result = @mysql_query($query_string); 
} 
?> 

<?php 
    $name = rtrim($_REQUEST['name']); 
    $action = rtrim($_REQUEST['action']); 

    if($action=="delete"){ 
    echo deleteRow($name); 
    } 
    else{ 
    echo update_database(); 
    } 
?> 
+1

*「什麼應該在onreadystatechange函數」*處理服務器響應的代碼。 –

+0

我明白了。那麼,如果我想顯示同一個表格,但最新的結果是什麼,即刪除後的含義。我似乎無法刪除數據庫中的行。 – hzq

回答

1

From MDN

返回一個EventHandler,只要readyState屬性發生更改就會調用它。回調從用戶界面線程調用。

因此當readyState被更改時,您可以在此屬性中看到請求的狀態。

0 UNSENT open()尚未被調用。

1 OPENED send()已被調用。

2 HEADERS_RECEIVED send()已被調用,且標題和狀態可用。

3 LOADING正在下載; responseText保存部分數據。

4完成操作完成。

1

它應該是服務器響應,而一些測試,如果Ajax是成功或錯誤

xmlhttp.onreadystatechange=function(){ 
    //what should be in here 
    if (xmlhttp.readyState === 4 && xmlhttp.status === 200) { 
     console.log(xmlhttp.responseText) // response of your server 
    } else { 
     console.log("Error") 
    } 
}; 
0

感謝您的信息和幫助球員。順便說一句,我所指的是字面上是什麼裏面:

xmlhttp.onreadystatechange=function(){ 
document.getElementById("divTable").innerHTML=xmlhttp.responseText; 
}; 
相關問題