我在PHP网站上有一个搜索结果页面,它返回结果列表。我现在需要在搜索结果页面中添加一个过滤器选项,以便用户可以从某些选择菜单选项中进一步细化搜索结果。搜索结果的网址如下所示:
findProducts.php?action=searchAssets&orderNumber=xxxx&productName=zzz
并从搜索表单页面上的GET请求执行。
我已使用以下选择菜单添加了一些过滤器:
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Filter By</h3>
</div>
<div class="panel-body">
<form class="form-horizontal" id="filter" action="filter.php" method="get" role="form">
<input type="hidden" name="action" value="filterSearch">
<div class="form-group">
<div class="col-sm-9">
<select class="form-control" name="productType" id="productType">
<option selected="selected">By Product Type</option>
<option value="Cars">Cars</option>
<option value="Trains">Trains</option>
<option value="Planes">Planes</option>
</select>
</div>
</div>
</form>
</div>
</div>
&#13;
我现在需要发生的事情,并且不确定如何执行此操作,是在修改“选择”菜单时再次执行搜索,例如GET请求现在是这样的:
findProducts.php?action=searchAssets&orderNumber=xxxx&productName=zzz&productType=Cars
如果用户从选择菜单中选择了“汽车”选项。我使用PHP和Bootstrap,因此可以在这里使用jQuery / PHP解决方案。
答案 0 :(得分:1)
将on-chage事件附加到您的下拉列表,然后在触发时将其值附加到当前网址,然后重新加载页面。
&#xA;&#xA; $(文档).ready(function(){&#xA; $('#productType')。change(function(){&#xA; window.location.href = window.location.href +'&amp; productType ='+ $ (this).val();&#xA;});&#xA;});&#xA;
&#xA;
答案 1 :(得分:0)
Onn选择“更改”事件,你可以调用一个函数,它会对你的搜索结果网址进行ajax调用..像这样:
$(“#productType”)。on('change',function(){
var product_type = $(this).val(); //selected product type
var your_search_url = "path/to/findProducts.php?action=searchAssets&orderNumber=xxxx&productName=zzz&productType="+product_type;
$.get(your_search_url, function(data, status){
// your code here to deal with the search results
});
});
答案 2 :(得分:0)
这就是您所需要的https://www.w3schools.com/php/php_ajax_database.asp
你甚至可以连锁下拉。如果你想发送更多的一个param(做什么东西='a'和b ='c')到那个php页面使用隐藏的表格和javascript。