在删除行时使用ajax

时间:2014-02-12 08:21:07

标签: javascript ajax

我有一个网页,其中有几行数据存入mysql数据库。我是ajax的新手,我现在就试试吧,因为我想删除行而不刷新网页。我只是想问一下我在ajax中的代码是否正确或我是否正确使用它。这是我的代码。

这是行的生成

            mysql_connect("localhost","root","");
            mysql_select_db("eis");
            $e=0;
            $d = mysql_query("select * from hrd_ot");   

            while($x=mysql_fetch_array($d)){
            $e++;
                print"<tr id='row".$e."'>
                <td>{$x['nam']}</td>
                <td>{$x['dep']}</td>
                <td>{$x['job']}</td>
                <td>{$x['dateofot']}</td>
                <td>{$x['frt']}</td>
                <td>{$x['tot']}</td>
                <td>{$x['toh']}</td>
                <td>{$x['app']}</td>
                <td><a href='#' onclick=\"return samplexx(".$x['id'].",row".$e.")\">OK</a></td>
                </tr>";}

这是我的ajax脚本|来源http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp

<script>
function samplexx(id,row)
{
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
        row.style.display="none";
      }
    xmlhttp.open("GET","sample.php?id="+id,true);
    xmlhttp.send(); 
}   
</script>

这是我的sample.php

mysql_connect("localhost","root","");
mysql_select_db("eis");

mysql_query("delete from hrd_ot where id='{$_GET['id']}'");

我也可以删除我选择删除的行而不使用这行代码row.style.display="none";

1 个答案:

答案 0 :(得分:0)

我有一些建议。

如果您正在关注REST,则应使用DELETE方法而不是使用“GET”方法。

如果您可以检查xmlHttpREquest的状态,那将会很好。

if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//hide row
}
samplexx函数中的

行不是对所选行的jquery引用。所以你应该使用

$("#"+row).style.display="none".

 document.getElementById(row).style.display="none"

以下行只是隐藏了表格中的行。这样您就不必刷新页面并获取新的行列表。仅在服务器返回200状态时执行此操作。

$("#"+row).style.display="none";