2013-02-12 64 views
1

即时通讯最近做我的项目关于分页,但问题是当我点击“搜索”按钮的第一页中的数据将出现,但第二页是空白的,当我回到第一页,页面是完全空白的。这里是代码。谢谢!分页没有结果显示在下一页

<form method="post"> 
<div><table> 
        <td><b>Select Section:</b></td> 
        <td><select name="level"> 
             <option value="Nursery">Nursery</option> 
             <option value="K-1">K-1</option> 
             <option value="K-2">K-2</option> 
             <option value="Grade 1">Grade 1</option> 
             <option value="Grade 2">Grade 2</option> 
             <option value="Grade 3">Grade 3</option> 
             <option value="Grade 4">Grade 4</option> 
             <option value="Grade 5">Grade 5</option> 
             <option value="Grade 6">Grade 6</option> 
             <option value="please_select" selected="selected" id="ps">Please Select</option> 
             </select></td> 


        <td><input type='image' name='submit' src='images/search1.jpg' id='img11' value='Search'/></td> 
        <span class='label'>&nbsp;</span> 
    </tr>    
    </table></div> 

<CENTER><table class="table1" border = "1" cellspacing="0" cellpadding="9"> 
<tr class="tr1"> 
    <th class="th1">Student Name</th> 
    <th class="th1">Year Level</th> 
</tr> 

<?php 
    if (!isset($_POST['level'])) 
    { 
    $_POST['level'] = "undefine"; 
    } 
    $level = $_POST['level']; 

    @$page = (int) $_GET['page']; 
    if ($page < 1) $page = 1; 
    $numPages = 6; 
    $resultsPerPage = 5; 
    $startResults = ($page - 1) * $resultsPerPage; 
    $numberOfRows = mysql_num_rows(mysql_query('SELECT * FROM students'))or die(mysql_error()); 
    $totalPages = ceil($numberOfRows/$resultsPerPage); 

    $id=1; 

    $sql="SELECT * FROM students where level = '$level' LIMIT $startResults, $resultsPerPage" or die(mysql_error()); 
    $result=mysql_query($sql); 
    while ($row = mysql_fetch_assoc($result)){ 
    if($level == ""){ 
    echo "<script>alert(\"Please Enter Year Level!\");</script>"; 
    return 'student_list'; 
    } 
    else{ 
    echo "<tr class='tr1'>"; 
    echo "<center>"; 
      echo "<td class='1'>" . $row['surname'] .", " .$row['firstname']." ". $row['middlename']. "</td>"; 
      echo "<td class='1'>". $row['level'] . "</td>"; 
    echo "</center>"; 
    echo "</tr>"; 
    } 
    } 
    $id++; 
    $boundaryPages = floor($numPages/2); 
    $range = array('start' => 1, 'end' => $totalPages); 
    $even = ($numPages % 2 == 0); 
    $theEnd = $totalPages - $boundaryPages; 

    if($even) $theEnd++; 

    if($totalPages > $numPages) 
    { 
     if($page <= $boundaryPages) 
      $range['end'] = $numPages; 
     elseif ($page >= $theEnd) 
      $range['start'] = $totalPages - $numPages + 1; 
     else 
     { 
      $range['start'] = $page - $boundaryPages; 
      $range['end'] = $page + $boundaryPages; 
      if($even) $range['end']--; 
     } 
    } 
    if($page > 1) 
     echo '<a href="?page='.($page - 1).'">&laquo;</a>&nbsp'; 

     for ($i = $range['start']; $i <= $range['end']; $i++) 
     { 
      if($i == $page) 
       echo '<strong>'.$i.'</strong>&nbsp;'; 
      else 
       echo '<a href="?page='.$i.'">'.$i.'</a>&nbsp;'; 
     } 
    if ($page < $totalPages) 
     echo '<a href="?page='.($page + 1).'">&raquo;</a>&nbsp;'; 
+0

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO, [这里是一个很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 – 2013-02-12 03:33:09

回答

0

如果你想沿着围绕搜索参数数据随身携带,你想将其添加到您的分页链接,并与$_GET访问;或使用sessions。否则,您的应用程序将在以下页面中丢失关于$_POST数据的所有知识。