1

データベースを印刷するために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ỉ&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>

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コードの問題は何ですか?

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 に答える