我有一个网页,其中有几行数据存入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";
答案 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";