【发布时间】:2016-07-12 22:59:51
【问题描述】:
所以我正在使用 laravel 5.2 并且我正在构建一个搜索表单,有多个搜索查询和选项。
我一直在努力思考如何保存用户搜索并在他们访问搜索页面时自动填写表单,甚至在他们访问时自动搜索。
到目前为止,我一直将 GET 设置为变量并自动填充文本字段,但这只会持续它们在页面上的时间,这不是我想要的,
我曾考虑将获取的数据作为单独的字段保存到数据库中,当他们在页面上搜索并拉取它们并填写每个字段时,我该如何自动搜索?
或者我是否将其保存为 1 个字符串作为从 URL 获取的字符串,例如 u=username&p=postcode 并设置路由以检查用户是否保存了搜索,如果他们访问 /search 他们会被重定向到保存在数据库中的 url+ 获取选项。 (也不知道怎么做。)
现在最难的部分是即使有了 get,我也有多个字段,比如性别和排序依据。你如何自动填写这些?
下面是我的表单代码
<?php
if(isset($_GET['u'])) { $username = $_GET['u']; } else { $username = ''; }
if(isset($_GET['p'])) { $postcode = $_GET['p']; } else { $postcode = ''; }
if(isset($_GET['o'])) { $orderby = $_GET['o']; } else { $orderby = ''; }
?>
{{ Form::open(['method' => 'GET']) }}
<div id="filter-panel" class="filter-panel collapse in">
<div class="panel panel-default">
<div class="panel-body">
<form class="form-inline" role="form">
<div class="row">
<div class="col-xs-6 col-sm-2">
{{ Form::input('search', 'u', $username, ['class' => 'form-control input-sm', 'placeholder' => 'username...']) }}
</div><!-- form group [search] -->
<div class="col-xs-6 col-sm-2">
{{ Form::input('search', 'p', $postcode, ['class' => 'form-control input-sm', 'placeholder' => 'postcode...']) }}
</div><!-- form group [search] -->
<div class="col-xs-6 col-sm-3">
<select id="attractedToGender" multiple="multiple" name="g[]" class="input-sm" >
<option value="1">Females</option>
<option value="2">Males</option>
<option value="3">Others</option>
</select>
</div><!--END form-group col-xs-6 col-sm-4-->
<div class="col-xs-12 col-sm-3">
<select id="pref-orderby" class="input-sm" name="o[]" multiple="multiple">
<option value="1">Photo Only</option>
<option value="2">User Type</option>
<option value="3">Last Online</option>
</select>
</div> <!-- form group [order by] -->
<div class="col-xs-6 col-sm-2 pull-right text-right">
{{Form::button('<i class="glyphicon glyphicon-search"></i> Search', array('type' => 'submit', 'class' => 'btn btn-primary btn-sm', 'style' => 'margin:0;'))}}
</div><!--END form-group col-xs-6-->
</div>
</form>
</div>
</div>
</div>
{{ Form::close() }}
【问题讨论】:
-
您希望用户能够将网址发送给其他人并让他们看到相同的搜索结果吗?如果是这样,使用获取变量并将它们存储在 url 查询字符串中将是最好的选择。如果没有,如何将变量存储在会话或 cookie 中?
标签: php mysql laravel search save