duanci1939 2014-02-20 12:50
浏览 14
已采纳

如何在分页中获得后期价值

I am working on search functionality with pagination in php.Below is my code but whenever I click on next link the search query is not taking variable which is passed through POST. Can you please help me..

searchstr=$_POST['q'];
session_start(); 
$_SESSION['searchchar']=$searchstr;
$rec_limit=3;
$connection=connection();
$searchstr=$_REQUEST['q'];
$sql="Select count(*) from  FIMTRN_Memorial where FirstName like '%".$_SESSION['searchchar']."%'";
echo$sql;
$result1=mysql_query($sql);
if(! $result1)
{
    die('Could not get data: ' . mysql_error());
}
$row = mysql_fetch_array($result1,MYSQL_NUM );
$rec_count = $row[0];
echo$rec_count;
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  FIMTRN_Memorial where FirstName like '%".$_SESSION['searchchar']."%' limit $offset,$rec_limit";
echo$sql;
$result=mysql_query($sql);
$rec_num=mysql_num_rows($result);
if($rec_num>0)
{
    while($row = mysql_fetch_array($result,MYSQL_ASSOC))
    { 
        $fname=$row['FirstName'];
        $image=$row['ProfileImagePath'];
        $about=$row['About'];
        $url=$row['CustomURL'];
        $DOB=$row['DOB'];
        $DOD=$row['DOD'];
?>
<div class="search">
    <p class="content"><img src="<?php echo $image;?>" style="border:1px solid red;width:100px;height:100px;" /></p>
<div class="content"><p>
<?php 
    echo "<a href=\"$url;\" target=\"_blank\">$fname</a>";
?>
    <p>(<?php echo date("Y",strtotime($DOB));?>-<?php echo date("Y", strtotime($DOD));?>)</p>
    </p><p><?php echo$about?></p>
</div>
</div>
<?php
    }
    if( $page > 0 & $left_rec > $rec_limit)
    {

        $last = $page - 2;
        echo "<a href=\"?page=$last\">Previous Records</a> |";
        echo "<a href=\"?page=$page\">Next  Records</a>";
    }
    else if( $page == 0 & $rec_count>$rec_limit )
    {     
        echo "<a href=\"?page=$page\">Next  Records</a>";
    }
    else if( $left_rec < $rec_limit & $rec_count>$rec_limit )
    {
        $last = $page - 2;
        echo "<a href=\"?page=$last\">Previous Records</a>";
    }
}
else
{
     echo"No memorial found.Please try with other name.";
}



enter code here

?>
  • 写回答

2条回答 默认 最新

  • dongyixiu3110 2014-02-20 13:01
    关注

    There are a couple problems in your code.

    First:

    You are using the $_GET variable incorrectly. You have $_GET{'page'}, but you should be using it the same way as the$_POST variable, like this: $_GET['page']

    Second:

    You are interpreting the idea of POSTing and clicking links incorrectly. What you need to make with your next and previous buttons are a hidden form that has all the other variables you need. For example, the simplest way that won't involve changing a lot of your other code:

    if( $page > 0 & $left_rec > $rec_limit)
    {
        $last = $page - 2;
        // Previous button form
        echo "<form action='?page=$last' method='POST'>";
        echo "<input type='hidden' name='q' value='" . $_POST['q'] . "' />"; // This will be a field that saves information but won't appear on the page (though a user could see it if they view source)
        echo "<input type='submit' value='Previous Records' />";
        echo "</form>";
        echo " | "; // The delimiting character you were using, you'll need to style the input type='submit's to look more like a link if that's what you are going for
        // Next button form
        echo "<form action='?page=$page' method='POST'>";
        echo "<input type='hidden' name='q' value='" . $_POST['q'] . "' />"; // This will be a field that saves information but won't appear on the page (though a user could see it if they view source)
        echo "<input type='submit' value='Next  Records' />";
        echo "</form>";
    }
    

    This method will keep your variables in the request. Using a link essentially resets the $_POST variable. There are a ton of other possible solutions, but this is one will require the least amount of work to modify your example.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了
  • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能