【发布时间】:2021-04-03 20:25:52
【问题描述】:
我正在处理搜索页面中的过滤器部分,但问题是在主搜索页面中,所有结果都从控制器循环,现在我使用 jquery 进行过滤器过程,但事情令人困惑。如何以正确的方式做到这一点?
所以这里是过程:
第 1 步:用户搜索“支持”之类的内容,然后系统转到 searchController 文件并给出结果
return view('/search')->with(["documents" => $results, "filters" => $filters]);
然后,当用户单击任何类别时,它将过滤结果,但现在问题是我正在使用 jquery,现在事情变得很奇怪。有人可以帮我解决这个问题吗?
JS 代码:
$(document).on("click", ".category_filter1",function() {
var test = new Array();
$("input[name='category_filter']:checked").each(function() {
test.push($(this).val());
});
showValue(test);
});
function showValue(data){
$.ajax({
'url': 'search/filter/'+(data.length > 0 ? data : "all"),
'type': 'GET',
success: function(response){ // What to do if we succeed
if(response.data == "success")
document.getElementById('result').innerHTML = response.categories;
},
error: function(response){
// alert('Error');
}
});
}
所有结果的来源控制器:
public function filter($data){
$t_data = explode(',' , $data);
$filters = $this->load_filters();
if(count($t_data)>0 && $t_data[0]!== "all"){
$results = DB::table('documents')
->whereIn('category', $t_data)
->paginate(5);
}else{
$results = Document::paginate(5);
}
return redirect('/search')->with(["documents" => $results, "filters" => $filters]); // This part is really confusing
}
所以流程会是这样的:
【问题讨论】:
-
`现在事情变得很奇怪`你所说的奇怪是什么意思,还有你在上图中显示的你想从控制器重定向但请求是通过 ajax 发送的?
-
我想构建一个如图所示的类别过滤器,但是有复选框所以我必须通过ajax调用函数,如果我从ajax调用函数,那么我必须通过jquey循环结果, 那么,我将如何管理以前的结果并将这些结果替换为过滤器结果,因为数据最初来自 seachController。我知道这里很乱
-
把图片放在公用文件夹中,这样你甚至不用调用路由来显示你的图片快速加载
-
主公用文件夹
-
stackoverflow.com/a/38980278/9471283 这显示了如何从公用文件夹图像中调用文件
标签: javascript jquery laravel laravel-8