我知道有各种各样的线索要求几乎相同,但它们似乎都没有真正满足我的需求....
在我的网站上,我实施了一个搜索表单。带有输入字段的简单表单,称为searchQuery
和提交按钮。表单使用POST方法发送。
我正在使用Laravel btw ..然后将搜索结果加载到控制器的视图中。这些显示在表格中。现在出现了一个有趣的部分:找到的元素是可点击的,你会在一个页面上看到有关该元素的更多细节。然后问题出现了:当我现在点击鼠标上的浏览器后退按钮或我的后退按钮时,我得到一个窗口,要求再次发送表单信息,我必须确认。
这不是我想要的,我想回到之前的搜索结果....
现在我读了很多,但我仍然不知道,怎么做。
我在onbeforeunload
之前阅读,您可以在其中显示消息,但这对我没用(我想回到搜索结果中)...
因此,有一些替代方案是可能的(如果技术上可行):
http://servername/search/searchquery
这样的网址中,然后将此搜索查询传递到deatil视图中,然后按一个按钮转到该网址,然后再次进行搜索或类似那。然后你可以(可能)覆盖浏览器后退按钮到"按"那个按钮而不是回到历史...... 这些选项之一是否可行,如果是,如何?还是有其他方法可以提供建议吗?
答案 0 :(得分:1)
根据您在上述问题中的评论,您可以这样做:
首先,您的表单应该是:
<form action="/search" method="GET">
<input type="text" name="searchQuery" value="Type keywords here...">
<input type="Submit" value="Search">
</form>
然后在提交表单后,路由/网址将是这样的:
http://localhost:8000/search?searchQuery=any_search_keyword
Route::get('search', 'SearchController@handleSearch'); // Laravel route
你可以在你的控制器中处理你的搜索:
function handleSearch() {
$searchQuery = request()->get('searchQuery');
// ... Handle your search here ...
}
通过这种方式,您可以使用GET方法来处理搜索,这也可以防止不必要的提交对话反复来回...
根据我的理解,这将是您正在寻找的解决方案