2015-05-13 23 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; 
}; 
相关问题