为了账号安全,请及时绑定邮箱和手机立即绑定

php 网页中的 page2 分页不起作用

php 网页中的 page2 分页不起作用

PHP
白衣染霜花 2023-12-15 15:25:51
有人可以帮我解决 php 网页的分页语法吗?我设置了一个分页代码,每页显示 20 条记录。记录根据“开始日期”显示和“结束日期”。问题是,它可以在 第 1 页上运行,但是当我点击 第 2 页第 2 页时 a> 的值不会在 page2 上转发。$_POST['startdate'] 和 在分页中那么它就不起作用。我假设 $_POST['enddate]
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

$_POST处理 POST HTTP 请求时,PHP 会填充超级全局变量。第 1 页的请求就是这种情况。

但是,您的 go2page() 函数正在发生变化location.href,它会生成 GET HTTP 请求,分页链接也会发生变化。

您应该将 startdate 和 enddate 参数附加到分页 URL,以将您的参数转发到下一个/上一个请求:

qm.php?page=<YOUR-PAGE-NUMBER>&startdate=<YOUR-START-DATE>&enddate=<YOUR-END-DATE>';

并在处理 GET 请求时使用 $_GET['startdate'] 和 $_GET['enddate] 检索这些内容。

查看完整回答
反对 回复 2023-12-15
?
www说

TA贡献1775条经验 获得超8个赞

添加$_POST内部链接的值并将其用作$_GET,这样您就可以同时使用这两个链接。


$startdate1=$enddate1=null; //to hide notice

if(isset($_POST['Search'])){

      $startdate1 = $_POST['startdate'];

      echo "Start date :  ".$startdate1.", ";

      $enddate1 = $_POST['enddate'];

      echo "End date :  ".$enddate1;

} else if (!empty($_GET['startdate']) && !empty($_GET['enddate'])){

      $startdate1 = $_GET['startdate'];

      echo "Start date :  ".$startdate1.", ";

      $enddate1 = $_GET['enddate'];

      echo "End date :  ".$enddate1;

}


$pagLink .= "<li><a href='qm.php?page=".($k+$i)."&startdate=".startdate1."&enddate=".$enddate1."'>".($k+$i)."</a></li>";

根据您的需要:


$pagLink = ""; 

if($pn>=2){ 

    echo "<li><a href='qm.php?page=1&startdate=".startdate1."&enddate=".$enddate1."'> << </a></li>"; 

    echo "<li><a href='qm.php?page=".($pn-1)."&startdate=".startdate1."&enddate=".$enddate1."'> < </a></li>"; 

for ($i=-4; $i<=4; $i++) { 

  if($k+$i==$pn) 

    $pagLink .= "<li class='active'><a href='qm.php?page=".($k+$i)."&startdate=".startdate1."&enddate=".$enddate1."'>".($k+$i)."</a></li>"; 

  else

    $pagLink .= "<li><a href='qm.php?page=".($k+$i)."&startdate=".startdate1."&enddate=".$enddate1."'>".($k+$i)."</a></li>";   

};   

echo $pagLink; 

if($pn<$total_pages){ 

    echo "<li><a href='qm.php?page=".($pn+1)."&startdate=".startdate1."&enddate=".$enddate1."'> > </a></li>"; 

    echo "<li><a href='qm.php?page=".$total_pages."&startdate=".startdate1."&enddate=".$enddate1."'> >> </a></li>"; 

}

这将帮助您将日期移至下一页。


您需要将其设置为所有分页链接。您还可以制作额外的 if 语句以不传递空GET


编辑:

正如我已经说过的:您需要将其设置为所有分页链接。您还可以制作额外的 if 语句以不传递空 GET (包括 javascript)


function go2Page() 

    var pn = document.getElementById("pn").value; 

    pn = ((pn><?php echo $total_pages; ?>)?<?php echo $total_pages; ?>:((pn<1)?1:pn)); 

    window.location.href = 'teztz.php?page='+pn+'&startdate=<?=startdate1;?>&enddate=<?=$enddate1;?>';


查看完整回答
反对 回复 2023-12-15
?
Helenr

TA贡献1780条经验 获得超3个赞

你的有一个错误isset($_POST['Search'])


你的代码:


if(isset($_POST['Search'])){

    $startdate1 = $_POST['startdate'];

    echo "Start date :  ".$startdate1", ";

                  $enddate1 = $_POST['enddate'];

                  echo "End date :  ".$enddate1;

              }

可能的工作解决方案:


if(isset($_POST['Search'])){

    $startdate1 = $_POST['startdate'];

    echo "Start date :  ".$startdate1.", ";

                  $enddate1 = $_POST['enddate'];

                  echo "End date :  ".$enddate1;

              }

虽然我还没有尝试过,但我认为这就是原因,page2 中的分页将不起作用,因为在 page2 的分页错误之后代码不会执行。


编辑:. 解决了问题。


echo "Start date :  ".$startdate1", ";

不同于


echo "Start date :  ".$startdate1.", ";


查看完整回答
反对 回复 2023-12-15
  • 3 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信