我已经用php为我的网站实现了分页系统,唯一的问题是:
假设存在分页的url是,www.abc。com/search。php?模式=学习
<?php
function displayPaginationBelow($per_page,$page,$total){
$page_url="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]&";
$adjacents = "2";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$prev = $page - 1;
$next = $page + 1;
$setLastpage = ceil($total/$per_page);
$lpm1 = $setLastpage - 1;
$setPaginate = "";
if($setLastpage > 1)
{
$setPaginate .= "<ul class='setPaginate'>";
$setPaginate .= "<li class='setPage'>Page $page of $setLastpage</li>";
if ($setLastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $setLastpage; $counter++)
{
if ($counter == $page)
$setPaginate.= "<li><a class='current_page'>$counter</a></li>";
elseif (isset($_GET['page'])) {
unset($_GET['page']);
$page_url = http_build_query($_GET);
echo $page_url;
$setPaginate.= "<li><a href='{$page_url}page=$counter'>$counter</a></li>";
}
else
$setPaginate.= "<li><a href='{$page_url}page=$counter'>$counter</a></li>";
}
}
elseif($setLastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$setPaginate.= "<li><a class='current_page'>$counter</a></li>";
else
$setPaginate.= "<li><a href='{$page_url}page=$counter'>$counter</a></li>";
}
$setPaginate.= "<li class='dot'>...</li>";
$setPaginate.= "<li><a href='{$page_url}page=$lpm1'>$lpm1</a></li>";
$setPaginate.= "<li><a href='{$page_url}page=$setLastpage'>$setLastpage</a></li>";
}
elseif($setLastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$setPaginate.= "<li><a href='{$page_url}page=1'>1</a></li>";
$setPaginate.= "<li><a href='{$page_url}page=2'>2</a></li>";
$setPaginate.= "<li class='dot'>...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$setPaginate.= "<li><a class='current_page'>$counter</a></li>";
else
$setPaginate.= "<li><a href='{$page_url}page=$counter'>$counter</a></li>";
}
$setPaginate.= "<li class='dot'>..</li>";
$setPaginate.= "<li><a href='{$page_url}page=$lpm1'>$lpm1</a></li>";
$setPaginate.= "<li><a href='{$page_url}page=$setLastpage'>$setLastpage</a></li>";
}
else
{
$setPaginate.= "<li><a href='{$page_url}page=1'>1</a></li>";
$setPaginate.= "<li><a href='{$page_url}page=2'>2</a></li>";
$setPaginate.= "<li class='dot'>..</li>";
for ($counter = $setLastpage - (2 + ($adjacents * 2)); $counter <= $setLastpage; $counter++)
{
if ($counter == $page)
$setPaginate.= "<li><a class='current_page'>$counter</a></li>";
else
$setPaginate.= "<li><a href='{$page_url}page=$counter'>$counter</a></li>";
}
}
}
if ($page < $counter - 1){
$setPaginate.= "<li><a href='{$page_url}page=$next'>Next</a></li>";
$setPaginate.= "<li><a href='{$page_url}page=$setLastpage'>Last</a></li>";
}else{
$setPaginate.= "<li><a class='current_page'>Next</a></li>";
$setPaginate.= "<li><a class='current_page'>Last</a></li>";
}
$setPaginate.= "</ul>\n";
}
return $setPaginate;
}
我知道问题出在
$page\u url
变量上,需要帮助解决这个小问题吗
在添加新的页面参数之前,需要去掉旧的页面参数。因此,通过unset()
在这个答案中,给出了一种实现这一点的方法。
$page_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; //Create the url
$page_url = preg_replace("/(page\=[0-9]+[\&]*)/", "", $page_url); // Delete page query string.
if($page_url[strlen($page_url) - 1 ] !== "&"){ // If last char is not &
$page_url .= "&"; // add &
}
非常简单的要求,但很难做到这一点。有一个简单的页面,我打印参数在url路径。 ngtest.html 在浏览器窗口中: 将更改为类似 什么也没发生。按F5键,它将按预期工作。 不确定这是否与浏览器行为有关,但如何强制页面在参数更改后刷新Enter?
问题内容: 分页时有什么方法可以保留我的GET参数。 我的问题是我有几个不同的网址,即 我应该如何在分页类中创建指向页面上具有不同页码的页面的链接,但仍然保留网址的其他部分? 问题答案: 简而言之,您只需解析URL,然后在最后添加参数,或者如果参数已经存在,则将其替换。 此示例代码需要用于和的PHP HTTP模块 。后者可以替换为第一个,如果没有安装模块,则可以使用PHP用户空间实现。 另一种选择
问题内容: 我有这个网址: 我需要的是能够将“行”的url参数值更改为我指定的值,比方说10。如果“行”不存在,则需要将其添加到url的末尾并添加我已经指定的值(10)。 问题答案: 在学到很多东西之后的四年后,回答我自己的问题。特别是您不应该将jQuery用于所有功能。我创建了一个可以解析/字符串化查询字符串的简单模块。这使得修改查询字符串变得容易。 您可以按以下方式使用查询字符串:
我有一个带有分页的表视图。如下(简化): 问题是,当我更新数据时(ObservableList)。更改在表视图中不可见。 在我看来,问题出在中。如果我使用设置项目,所有更改都会立即在中可见。 有什么想法,我该怎么解决这个问题? 编辑 我正在更新如下数据:
问题内容: 如何在不刷新页面的情况下更改URL? 我已经用CodeIginer建立了一个网站,我想在我的页面之一中实现AJAX和JQuery。问题是; 当我加载内容时,URL不会改变。 假设我有URL 和另一个URL: 单击按钮时如何将第一个URL更改为第二个URL? 问题答案: 在HTML5中,您可以更改URL: 检查http://spoiledmilk.com/blog/html5-chang
加载页面视图时,将对函数AjaxProductList()启动一个ajax调用; 当我点击分页中的任何一个链接时,它会成功地处理数据,但不会更新活动链接。即,如果我点击第5页,它将获取正确的数据,但活动链接将仍然在第1页。 请告诉我,我是否做错了什么? 提前道谢。