什么应该在onreadystatechange里面?

时间:2015-05-13 06:02:43

标签: javascript php ajax

我有一个问题。我在我的外部javascript(ajax)中有一个删除功能,我用来触发,以便我的PHP文件中的删除查询将被执行。

我想知道的是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();
  }
?>

3 个答案:

答案 0 :(得分: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")
   }
};

答案 1 :(得分:1)

来自MDN

  

返回每当readyState属性更改时调用的EventHandler。从用户界面线程调用回调。

因此,当readyState发生变化时,您可以在此属性中查看请求的状态。

  

0尚未调用UNSENT open()。

     

已打开1个已打开的send()。

     

已调用2个HEADERS_RECEIVED send(),并且标题和状态可用。

     

3加载下载; responseText保存部分数据。

     

4 DONE操作完成。

答案 2 :(得分:0)

感谢您提供的信息和帮助。顺便说一下,我所指的是字面上的内容:

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