如何获得搜索关键时,有人编辑搜索后的结果


How to get search key when someone edit the result after search

在我的项目中有一些记录的列表。用户可以通过项目名称进行查询。搜索后,用户可以编辑特定的记录。编辑后,当用户点击更新按钮,现在它是重定向到列表页面,但搜索结果不见了,所有的记录都显示。

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

我正在使用codeigniter。

例如

:

有一个包含10条记录的列表。用户按"ABC"搜索记录。结果来像5个记录一样有"ABC"项目来。然后用户编辑一条记录并更新它。更新后,我想只显示搜索键"ABC"的5条记录。现在它正在显示10(所有)记录,因为我在没有搜索键的列表页面上重定向。我不知道该怎么做。(

我个人会做的是在我的列表页面上这样的东西,我将有一个表单,将通过GET方法提交到搜索功能。这样,我就可以把所有的搜索参数放在URL中,我的URL就像这样:

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

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

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

编辑功能完成时。我会选择这个lastpage参数形式$_GET['lastpage'](或在CI中,您可以使用$this->input->get('lastpage'))来获得lastpage的编码值,并对其进行解码以获得所有以前的URL搜索参数。并再次将用户重定向到搜索功能,并将搜索参数附加到URL。

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

1)显示所有记录和

的正常视图

2)另一个视图,显示最近搜索的键的所有记录。

要实现这一点,你需要将搜索记录的id和记录的位置存储在临时DB表中,如TableforSearch,并将搜索键存储在会话中,如'ABC'。

在搜索键'ABC'时,找到与键匹配的记录的id,并将其与搜索键和UserId一起保存到Table TableforSearch中。

然后使用会话来获取键,并在会话中使用键搜索表以获取具有搜索键的所有id的行。对于错误处理,请查看该表中存在的id是否未被删除。

最后是显示搜索项显示第二页,对于其他显示正常的第一页

以便获得已键入的关键字。你有三个选项

  • 将关键字保存为GET变量
  • 将关键字保存为隐藏输入
  • 将关键字保存为SESSION变量
  • 将关键字保存为cookivariable

既然你不能选择选项3和4。您唯一的选择是创建一个GET变量。只需添加domain.com/controller/function?keyword=ABC并将其作为rldecode($_GET['keyword']);在控制器上或创建隐藏输入,您可以保存您的值并获取该值

一种方法是,当用户在列表页面中搜索任何东西时(我希望您的列表页面和搜索页面是相同的),而不是每次在新的搜索中,将搜索关键字存储在localStorage中,当用户更新记录时,而不是从localStorage重定向到列表页面以及您的搜索关键字。(建议只在列表页面和搜索页面相同的情况下使用。也就是说,你处理搜索与一些参数传递到列表页)

将搜索条件保存在会话变量$_SESSION['mysearch'] = 'ABC'中,并在重定向header("Location: /mysearch.php?criteria=" . urlencode($_SESSION['mysearch']))时使用它。然后在你的"mysearch.php"中,你将ureldecode($_GET['criteria']),再次运行搜索并显示结果。