问题是,例如,当我加载页面2时,URL变为:
http://domain.com/index.php?restaurant-id=45¤tpage=2
很好,但是当我进入第3页时,它变为:
http://domain.com/index.php?restaurant-id=45¤tpage=2¤tpage=3
依此类推,每次从分页链接加载新页面时,它都会添加一个currentpage参数!
我不知道该如何解决?
这是一些分页功能的代码
/****** build the pagination links ******/
// Getting current page URL with its parameters
$current_page_url = ($_SERVER["PHP_SELF"].(isset($_SERVER["QUERY_STRING"])?"?".htmlentities($_SERVER["QUERY_STRING"]):""));
// Determine which sign to use (? or &) before the (currentpage=xx) parameter
$sign = preg_match('/\?/', $current_page_url) ? '&' : '?';
$pagination_links = '';
// if not on page 1, don't show back links
if ($currentpage > 1) {
// show << link to go back to page 1
$pagination_links .= " <a href='{$current_page_url}{$sign}currentpage=1'>First page</a> ";
// get previous page num
$prevpage = $currentpage - 1;
// show < link to go back 1 page
$pagination_links .= " <a href='{$current_page_url}{$sign}currentpage=$prevpage'>previous</a> ";
}
else
{
$pagination_links .= "ـ ـ";
}// end if
解决方法:
您可以使用regex从$current_page_url变量中删除currentpage参数,尽管它很丑陋.
$current_page_url = preg_replace('currentpage=\d+', '', $current_page_url);
但是,我建议编写一个小函数,该函数将在传递给它的值上生成URL,然后您可以轻松地修改任何参数,而不必担心正则表达式并将其从URL中删除.像this这样的东西应该没问题.
标签:php,pagination,parameters 来源: https://codeday.me/bug/20191009/1879586.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。