对单个搜索结果进行重定向
Redirecting on a single search result?
当用户在我的网站上进行搜索时,只有一个条目,然后我想将用户重定向到搜索结果。我现在做这件事的方法很糟糕。以下是我目前的做法:
如果在搜索结果页面上只有一个搜索结果,那么我呈现一个隐藏的输入,ID为"redirect",值为要重定向到的链接。在javascript中,如果存在ID为"redirect"的隐藏输入,则用户将被重定向到元素的值。
这是一种糟糕的方法,因为首先加载的是单个搜索结果,所以用户实际上看到的是一个搜索结果。然后,它在3秒后加载。
有更好的方法吗?
如果只有一个结果,可以使用header() PHP函数进行重定向。
header("Location: http://www.example.com/");
您应该使用PHP来确定是否只有一个结果,然后执行服务器端重定向,如下所示:
header( 'Location: http://www.yoursite.com/redirect_page.html' );
exit;
在打印任何内容到页面之前,检查是否只有一个结果,如果是,则呈现该脚本并退出,以便不处理任何其他内容。
<?php
//Query & other stuff
$num_of_results=mysql_num_rows($result);
if($num_of_results==0){
//no results
}elseif($num_of_results==1){
//only 1 result
//pseudo-code
//get id or controller ect from result set
header('Location: ./page/'.$id);
die();
}else{
//normal display of search results
while($row=.......){
}
}
?>
您的逻辑问题是,您正在等待页面中的某些内容加载然后重定向。我认为一个更优雅的解决方案是改变事情的流程,给你更多的灵活性。
首先,你需要预处理你的查询并检查相关信息;如果有一个结果,则使用前面提到的header();
重定向。您可能需要向结果集(数据库表)添加一些更多的信息来实现这一点。
我认为更进一步,可以自动重定向某些术语。你会一举两得的。
假设你有一个数据库是term
和url
-你可以添加某些术语的列表,也作为重定向。这对于存在变化的某些关键字非常有用。不过要谨慎地使用它——它与你的站点统计数据结合使用是很好的。在显示0条记录的情况下,它可能会对您有所帮助。
相关文章:
- jQuery使用inArray搜索和重定向邮政编码
- 谷歌CSE-我可以显示嵌入在我的网站上的页面本身,而不是从结果视图重定向到页面
- 如果当前网址不包含位置搜索,请重定向到主页
- 如何在重定向到另一个页面后维护一个页面值(搜索值和表记录值)
- 节点 js 护照重定向结果为 404
- 当将页面提交到谷歌表单时,它将打印结果,然后使用 javascript 重定向到主页
- 使用 JavaScript 搜索字符串,如果结果为 true,则重定向页面
- 阿尔戈利亚重定向到搜索结果
- 如何将自动完成搜索框重定向到显示视图
- 如何先从Firebase获取结果,然后重定向到另一个页面
- Javascript在正文文本中搜索关键字,如果找到,则重定向到特定的URL
- 重定向页面覆盖谷歌搜索中的真实页面
- 在页面加载过程中,在不重定向到其他页面的情况下,在同一页面上打印距离结果
- 加载结果后重定向到新页面
- 我应该使用哪些功能来url安全搜索重定向
- 重定向到特定的url基于用户输入,但如果没有预定义的关键字存在搜索网站
- 如何在表单提交后停止重定向到API调用结果
- Rails控制器和javascript:不要给出期望的重定向结果
- 如何从谷歌网页搜索api重定向搜索结果
- 对单个搜索结果进行重定向