补充的Ajax
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<!-- <script type="text/javascript" src="../ajax/ajax2.js"></script>-->
</head>
<body>
<?php $conn = mysql_connect("localhost","root","") or die("数据库连接失败".mysql_error());
mysql_select_db("bbs"); mysql_query("set names 'utf8'");
$sql = "select id,username from user";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
echo "<a href='javascript:queryDetail($row[id])'>".$row['username']."</a> ";
} ?>
<div id="show"></div>
</body>
<script>
var xmlHttp;
function queryDetail(id){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("MICROSOFT.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
if(!xmlHttp){
alert("没有获取到对象!");
return;
}
//由于javascript是没有办法连接数据库的,所以,需要通过后台语言
//结合来连接数据库,那么这里就是把js从界面获取的值,传递给后台程序
//xmlHttp.open()其实也就是链接到一个后台程序,把值传递过去
//这其实是第一步
xmlHttp.open("GET","queryById.php?id="+id,true);
//这是第三步
//这一步是一个回调函数,回调函数其实就和打电话代办事情是一个意思
//这个回调函数其实就是状态改变的时候,js应该做什么事情
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
var txt = xmlHttp.responseText;
var show = document.getElementById("show")
// 方法一
show.innerHTML=txt;
// 方法二
// if(show){
// show.innerHTML = "";
// document.body.removeChild(show);
// }else{
// var d = document.createElement("div");
// d.id = "show";
// d.style.cssText="width:200px;height:300px;border:1px solid red;";
// var strs = txt.split(",");
//// alert(strs);
// for(var i=0;i<strs.length;i++){
// d.innerHTML += strs[i] + "<br/>";
// }
// document.body.appendChild(d);
// }
}
}
}
//注意,open()方法就仅仅只是打开了连接,并没有传递,所以需要send方法
//这是第二步
xmlHttp.send(null);
}
</script>
</html>