搜索和分页,如何在提交表单后获取搜索词

时间:2014-06-27 10:21:28

标签: php html html5

我正在使用分页创建搜索功能。

我有一个表单,我得到它的POST值。然后我用它来搜索数据库并返回一组结果。

结果会分解到页面中,用户可以单击视图中的页面链接。

我的问题是,如何在多个页面上保留搜索?

如果第一页获得POST值,并且在后续页面上我应该将搜索词放入网址,例如

www.example.com/search/various-keywords/p2

然后获取术语并再次查询数据库,将结果拆分为任何页面,p2,p3,p4等。

有更简洁的方法吗?

此外,在网址中包含用户输入是否不安全?我应该以某种方式编码吗?

如果用户在经过多个页面后再次点击,我将收到“确认表单重新提交”错误。我该如何防止这种情况?

3 个答案:

答案 0 :(得分:1)

最好的方法是将搜索字词设为 GET 变量,这样您就可以随时检索它并将其添加到您想要的任何网址中。

只要你逃避搜索查询,你应该没有用户安全性,这也将删除重新提交表单错误。

答案 1 :(得分:1)

搜索应该使用GET方法,它是RESTful方式。将搜索字词添加到网址中(确保将其转义):

http://www.example.com/search?q=example+search+term&page=1

如果您有<form>,它将负责转义:

<form action="search" method="GET">
    <input type="text" name="q" />
    <input type="submit" value="Search" />
</form>

例如,如果您输入test & test,它将变为search?q=test+%26+test

答案 2 :(得分:0)

您可以通过URI传递搜索词组,例如www.example.com/search?q=My+Search+Terms&page=1,或者如果您认为合适,可以使用CookiesSessions