2013-03-08 91 views
1

我试图建立与AJAX和PHP页面印出数据库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

你是否考虑使用jQuery的AJAX? – 2013-03-08 04:53:15

+0

尝试一些调试方法,比如JS中的'console.log'和PHP中的'var_dump' /'print_r',以查看是否意外。 – Passerby 2013-03-08 04:54:27

+0

我没有得到“考虑”一词? @@ – 2013-03-08 04:54:46

回答

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> 
+0

'$ .get'返回一个XHR对象。您必须在“成功”回调中添加附加内容。 – Blender 2013-03-08 04:56:25

+0

@Blender更新答案。我指的是。 :) – 2013-03-08 04:56:49

+0

@Blender请立即检查? – 2013-03-08 04:58:05

1

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

+0

哦,是什么错误!我修好了,tks的家伙 – 2013-03-08 05:04:04

+0

应该是'ActiveXObject' http://www.tizag.com/ajaxTutorial/ajaxbrowsersupport.php – 2013-03-08 05:12:51