Php 当某人在搜索后编辑结果时如何获取搜索键

Php 当某人在搜索后编辑结果时如何获取搜索键,php,codeigniter,search,Php,Codeigniter,Search,在我的项目中有一些记录的列表。用户可以按项目名称搜索记录。搜索后,用户可以编辑特定记录。编辑后,当用户现在点击更新按钮时,它将重定向到列表页面,但搜索结果消失,所有记录都显示出来 更新后,我只想显示搜索到的记录,而不是全部。如何取回搜索键?如果有其他更好的方法,我不想使用session 我正在使用codeigniter 例如: 有一个10条记录的列表。用户通过“ABC”搜索记录。结果来了,有“ABC”项目如5条记录来了。然后用户编辑一条记录并更新它。更新后,I wan仅显示搜索键为“ABC”的5

在我的项目中有一些记录的列表。用户可以按项目名称搜索记录。搜索后,用户可以编辑特定记录。编辑后,当用户现在点击更新按钮时,它将重定向到列表页面,但搜索结果消失,所有记录都显示出来

更新后,我只想显示搜索到的记录,而不是全部。如何取回搜索键?如果有其他更好的方法,我不想使用session

我正在使用codeigniter

例如:


有一个10条记录的列表。用户通过“ABC”搜索记录。结果来了,有“ABC”项目如5条记录来了。然后用户编辑一条记录并更新它。更新后,I wan仅显示搜索键为“ABC”的5条记录。现在它正在显示10条(全部)记录,因为我在列表页面上重定向而没有搜索键。我不知道怎么做(

一种方法是,当用户在列表页中搜索任何内容时(我希望您的列表页和搜索页是相同的),而不是每次在新搜索时,将搜索关键字存储在
localStorage
中,当用户更新记录时,将重定向到列表页以及
localStorage
中的搜索关键字。(仅当您的列表页和搜索页相同时才建议这样做。即,您使用传递给列表页的一些参数来处理搜索。)

将您的搜索条件保存在会话变量
$\u session['mysearch']='ABC'
中,并在重定向
标题(“位置:/mysearch.php?criteria=“.urlencode($\u session['mysearch'])时使用它))

然后在“mysearch.php”中,您将
ureldecode($\u GET['criteria'])
,再次运行搜索并显示结果。

我个人要做的是在我的列表页面上,我会有一个表单,通过GET方法提交给搜索功能。这样,我会在URL中有我所有的搜索参数,我的URL是这样的:

exampledomain.com/users?name=steve&age=23

现在,对于编辑页面,我将生成一个带有特殊参数的链接,例如:lastpage,其值将是当前搜索参数的某种编码形式。因此,当用户转到编辑页面时,URL将如下所示:

exampledomain.com/users/edit/34?lastpage=erasc1235234safvdadsrgdfgbvcdfgrt435


编辑功能完成后。我将选择此lastpage参数表单
$\u GET['lastpage']
(或者在CI中,您可以使用
$this->input->GET('lastpage')
)获取lastpage的编码值并对其进行解码,以获取所有以前的URL搜索参数。然后将用户重定向到serach函数,并将搜索参数附加到URL。

以获取已键入的关键字。您有三个选项

  • 将关键字另存为GET变量
  • 将关键字另存为隐藏输入
  • 将关键字另存为会话变量
  • 将关键字另存为COOKIEvariable

因此,您不需要选择选项3和4。您唯一的选择是创建一个GET变量。只需添加
domain.com/controller/function?keyword=ABC
,并在controller上以
rldecode($\u GET['keyword'])的形式获取该变量;
或创建隐藏输入,您可以在其中保存值并获取该值。

我解决了将视图分为两种类型时遇到的相同问题

1) 显示所有记录和数据的普通视图

2) 另一个视图显示最近搜索的最后一个关键字的所有最近搜索的记录

为了实现这一点,您需要将搜索到的记录的ID和记录的存放位置存储在一个临时数据库表(如TableforSearch)中,并将搜索键(如“ABC”)存储在会话中

在搜索键“ABC”时,找到与该键匹配的记录的ID,并将其与搜索键和用户ID一起保存到TableforSearch表中

然后使用会话获取该键,并在会话中使用该键搜索表,以获取具有所搜索键的所有ID的行。 有关错误处理的信息,请参阅是否尚未删除表中该记录的ID


最后在显示搜索项目时显示第二页,对于其他显示正常第一页,添加一些代码或创建演示。是的,我的搜索和列表页是相同的。localstorage在数据库中的意思?不,它的
HTML5 localstorage
。您可以使用javascript处理它。好的,谢谢,这对我来说是件新鲜事。我们可以在localstorage中存储多个值吗?这个概念不错,但当我在编辑页面中编辑一个记录时。然后,当我点击“更新”按钮时,它会在列表页面上重定向,而我在localstorage中得到空值。你必须在更新按钮的链接中传递关键字。他说他不想使用sessionNo,他说他不想;如果有其他更好的方法,我不想使用会话。这只是你的意见,你不能相信这是真的。谢谢兄弟。。但由于某些原因,我不能使用GET方法。我正在使用post方法。在post中有什么想法吗?另一种方法是将cookies中的搜索参数保存为字符串。这样,您就可以始终获得
last\u page
cookie变量的值,并将用户重定向到上一页。我认为您需要将变量保存在某个位置。把变量放在一个临时隐藏的输入中怎么样?