dos8244 2014-10-14 05:56
浏览 56

PHP:分页提交按钮

I am trying to display the db records using pagination and hence i followed php paging tutorial and its working fine. Now i would like to display records from the difference between 2 dates. my html is like

<html>
<body>
    <form  method="post" name="Form1" >
        Startdate : <input name="startdate" type="text"  id="datepicker"  />
        Enddate : <input name="enddate" type="text"  id="datepicker1"  />
        <input type="submit" name="submit"  value="submit"  />
    </form>
</body>

I tried the above code inside my submit button as

<?php
if (isset($_POST['submit'])) 
{
    include 'connection.php'; 

    $startdate=$_POST['startdate']; 
    $enddate=$_POST['enddate'];     


    $rec_limit = 10;
    /* Get total number of records */
    $sql   = "SELECT COUNT(*) as num FROM tblname";
    $retval= mysql_query( $sql, $conn );
    if(! $retval )
    {
      die('Could not get data: ' . mysql_error());
    }

    $row      = mysql_fetch_array($retval, MYSQL_NUM );
    $rec_count= $row[0];

    if( isset($_GET{'page'}) )
    {
        $page  = $_GET{'page'} + 1;
        $offset= $rec_limit * $page ;
    }
    else
    {
        $page  = 0;
        $offset= 0;
    }

    $left_rec= $rec_count - ($page * $rec_limit);
    $sql     = "SELECT * FROM tblname Where start = '$startdate' AND end <= 'enddate' LIMIT $offset, $rec_limit ";  
    $retval  = mysql_query( $sql, $conn );

    if(! $retval )
    {
        die('myquery table failed: ' . mysql_error());
    }       

    echo "<table  border=1 >"; // start a table tag in the HTML
    echo "<tr>";
    echo "<td> Start </td>";
    echo "<td>End</td>";

    echo "</tr>";

    while($row = mysql_fetch_assoc($retval))
    {
        echo "<tr><td>{$row['start']}  <br> </td>".
             "<td>{$row['end']} <br> </td>";
    } 

    if( $page > 0 )
    {
        $last = $page - 2;
        echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$last\">Last</a> |";
        echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$page\">Next</a>";    

        echo "<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}?page=$page\">";
        echo '<input type="submit" value="Next" class="button">';
        echo '</form>';
    }
    else if( $page == 0 )
    {
        echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$page\">Next</a>";
    }
    else if( $left_rec < $rec_limit )
    {
        $last = $page - 2;
        echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$last\">Last</a>";
    }

    mysql_close($conn);
}
?>

When I try the above code, first time 10 records are displaying and next it is showing empty screen. I am searching in net but cannot able to find the reason for this problem . Kindly help me in achieving this.

  • 写回答

1条回答 默认 最新

  • douchi0471 2014-10-14 06:14
    关注

    Use $_REQUEST instead of $_POST because you use a tag for next and last links. You need to pass from and to dates in your a tag links.

    Top if condition :

    if (isset($_REQUEST['startdate']) && isset($_REQUEST['enddate'])){
     include 'connection.php'; 
    
     $startdate=$_REQUEST['startdate']; 
     $enddate=$_REQUEST['enddate'];
    
     //your codes
    }
    

    add dates in Next and Prev links like below

    echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$last&startdate=$startdate&enddate=$enddate\">Last</a> |";
    
    评论

报告相同问题?

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真