我正在尝试使用AJAX和PHP构建一个打印出数据库的页面
的index.php
<div id='mainTable'>
<table border=1>
<tr><th class='col1'>Mã Sinh Viên</th>
<th class='col2'>Họ tên</th>
<th class='col3'>Ngày sinh</th>
<th class='col4'>Giới tính</th>
<th class='col5'>Địa chỉ</th>
</tr>
</table>
</div>
<script>
function showPage(page) {
var xmlhttp;
if(window.XMLHttpRequest) {
xmlhttp= new XMLHttpRequest();
}
else {
xmlhttp= new ActiveObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if(xmlhttp.readystate==4 && xmlhttp.status==200) {
$("#mainTable table").append(xmlhttp.responseText);
}
}
xmlhttp.open("GET","showStudent.php?page="+page,true);
xmlhttp.send();
}
$(document).ready(function(){
showPage(1);
});
</script>
showStudent.php
<?php
session_start();
$db= new mysqli("localhost","root","","student");
if(!isset($_GET['page'])) {
$page=1;
}
else {
$page= $_GET['page'];
}
$start= ($page-1)*10;
$result= $db->query("SELECT * FROM information LIMIT $start,10");
while($row= $result->fetch_assoc()) {
$stuId= $row['stuId'];
$stuName= $row['stuName'];
$stuDob= $row['stuDoB'];
$stuSex= $row['stuDoB']?'Nam':'Nữ';
$stuAdd= $row['stuAdd'];
echo "<tr><td class='col1'>$stuId</td>
<td class='col2'>$stuName</td>
<td class='col3'>$stuDoB</td>
<td class='col4'>$stuSex</td>
<td class='col5'>$stuAdd</td>
</tr>
";
}
$_SESSION['page']= $page;
?>
正如我所料,当页面加载时,它必须从数据库打印出一个表,但我只有空白字段。我尝试了另一种使用PHP代码的方法,它起作用,所以我认为问题是关于AJAX。 有人可以帮助我,我的AJAX代码有什么问题吗?
答案 0 :(得分:1)
替换此部分:
<script>
function showPage(page) {
var xmlhttp;
if(window.XMLHttpRequest) {
xmlhttp= new XMLHttpRequest();
}
else {
xmlhttp= new ActiveObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if(xmlhttp.readystate==4 && xmlhttp.status==200) {
$("#mainTable table").append(xmlhttp.responseText);
}
}
xmlhttp.open("GET","showStudent.php?page="+page,true);
xmlhttp.send();
}
$(document).ready(function(){
showPage(1);
});
</script>
使用:
<script>
function showPage(page) {
$.get("showStudent.php?page="+page, function(data){
$("#mainTable table").append(data);
});
}
$(document).ready(function(){
showPage(1);
});
</script>
答案 1 :(得分:1)
你有一个错字(或者你做错了)。 xmlhttp.readystate
应为xmlhttp.readyState
,请注意首都S.还有什么是ActiveObject
?