我有一个允许用户搜索我的网站的文本框。
<form method="post" action="">
<input type="text" name="search" id="search" />
<input type="submit" name="submit" id="submit" value="Search" />
</form>
当用户点击“搜索”按钮时,如何创建以下网址,并将搜索框的内容追加到结尾,同时添加“_”代替任何空格?:
此外,如果有人在URL中编辑搜索查询,如何更新搜索文本框以反映此更改,因此该框包含以下内容
这是我的搜索。
答案 0 :(得分:0)
您可以在提交活动之前使用JavaScript更改操作网址。
您可以使用onSubmit事件或使用jquery
$('form').submit(function(){
$(this).attr('action', $('#search').val().replace(' ', '_'))
})
答案 1 :(得分:0)
您需要使用404页面处理该网址。您可以使用$ _SERVER ['REQUEST_URI']来获取该路径。例如,您可以在自定义404页面中执行此操作:
<?php
if (stripos($_SERVER['REQUEST_URI'], "/find/") == 0) //If url is yoursite.co.uk/find/
{
$searchterm = basename($_SERVER['REQUEST_URI']);
//Search for $searchterm
//Print the results
}
else
{
header("HTTP/1.0 404 Not Found");
}
?>
答案 2 :(得分:0)
这可以通过多种方式实现。
<强>的Javascript 强>
请参阅StarLight的回答。这很简单并且可以完成工作,但您需要检查非法的URL字符。
PHP重定向
示例:将表单操作设置为“search.php”。
<?php
$urlstr = urlencode(str_replace(' ', '_', $_GET['search']));
header("Location: http://www.mysite.co.uk/find/$urlstr");
exit;
?>
要更新文本框,您需要在显示搜索框的页面上显示以下代码。
<?php
// First get $urlstr from url.
$searchstr = str_replace('_', ' ', urldecode($urlstr));
$textboxvalue = (empty($searchstr)) ? 'Search' : $searchstr;
?>
<input type="submit" name="submit" id="submit" value="<?=$textboxvalue?>" />
答案 3 :(得分:0)
更改表单方法以获取..如果您使用代码点火器或其他framworks,您应该能够像
一样编码 $search = Uri:segment(2);
echo '<input type="submit" name="submit" id="submit" value="'.$search.'" />';