希望这是一个简单易行的问题。我已经看过多个例子,并知道如何将变量附加到URL(即mydomain.com/index.php?id=1&stat=0
),但我的问题是:
如果我的网站上有一个页面中已有变量(即mydomain.com/tickets.php?stat=Open
),我该如何将页码附加到该网址的末尾(即mydomain.com/tickets.php?stat=Open&page=2
)。这是用于包含搜索和选择功能的表格的分页目的,包括搜索和选择功能(选择打开,关闭或所有票证,并搜索特定的票证号码)。
我已经使用谷歌进行了多次搜索,并且干涸了,因为大多数有关此问题的主题都是您使用来自get go的变量对url进行硬编码,而不是追加它们。我可能只是使用了错误的搜索参数,并且不确定要搜索的内容。
非常感谢您对此的任何帮助或见解,谢谢。
请注意我希望仅在PHP,HTML和MySQLi中执行此操作。我想尽可能避免在我们的浏览器上禁用这些功能的客户端使用javascript或ajax。
答案 0 :(得分:0)
使用这种方式: -
<?php
$domain = "mydomain.com";
$page = "tickets.php?";
$full_page_url = $domain.'/'.$page;
$arr = array('stat' => 'Open', 'page' =>2);
$add= http_build_query($arr);
$correct_url = $full_page_url. $add;
echo $correct_url;
?>
输出: - mydomain.com/tickets.php?stat=Open&page=2
答案 1 :(得分:-1)
我会这样做:
$page = 2;
$url = 'mydomain.com/tickets.php?stat=Open';
if( false !== strpos($url, '?')){
//if url has a ? split it.
$arr_url = explode('?', $url);
//convert query string to array, $array=['stat'=>'Open']
parse_str($arr_url[1], $array);
//add or replace page by array key
$array['page'] = $page;
//convert it back to a query string.
$query = http_build_query($array);
print_r($query);
}
输出
stat=Open&page=2
将$query
放回$arr_url[0]
只是一个简单的问题我会留给你。但我会给你一个提示$arr_url[0].'?'.$query
这样做的好处是,您不必担心在page
之后page
之后添加page
的情况......
像这样:
mydomain.com/tickets.php?stat=Open&page=1&page=2&page=3
你不能简单地将它连接到url的末尾,并且它可能与解析查询字符串一样难以删除它。
作为旁注,您可以使用$_GET
,但其中的乐趣在于,因为$_GET
是已经解析为数组的查询字符串(因此您可以跳过parse_str)。但它可能不是在请求上,例如,如果您只是从字符串构建链接。
所以我想我会用parse_str
来展示它来掩盖“更难”的情况。
如果你只是建立一堆除了page
部分之外的所有网址,最后一件事。显而易见的答案是设置一个基本网址,然后循环输出数字。
$url = 'mydomain.com/tickets.php?stat=Open';
$pagedUrls = [];
$numberPages = 10;
for($i=1; $i<=$nubmerPages; $i++){
$pagedUrls[] = $url.='&page='.$i;
}
或者你有多少页面。
在你的问题中,你的确想要做的事情真的不是那么清楚......
希望有所帮助。