1

我正在尝试使用 AJAX 和 PHP 构建一个页面来打印数据库

索引.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ỉ&lt;/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>

显示学生.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 代码有什么问题?

4

2 回答 2

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>
于 2013-03-08T04:55:09.620 回答
1

你有一个错字(或者你做错了)。xmlhttp.readystate应该是xmlhttp.readyState,注意大写的 S。还有什么是ActiveObject

于 2013-03-08T04:58:50.417 回答