我遇到了复选框过滤问题。
我有主页,用户可以通过以下方式搜索数据库:
- 城市
- 时间
-category
在RESULT页面上,链接如下所示:
restaurants?city=1&datepick=&category=3
所以,我的餐馆控制器看起来像这样:
function index()
{
$city= $this->input->get('city') ? $this->input->get('city') : '';
$datepick= $this->input->get('datepick') ? $this->input->get('datepick') : '';
$category = $this->input->get('category') ? $this->input->get('category') : '';
$form_data = array(
'city' => $city,
'datepick' => $datepick,
'category' => $category
);
$this->load->model('rest_search');
$res = $this->rest_search->rest_main_search($form_data);
if(!empty($res)){
$data['result'] = $res['restaurant_details'];
$this->load->view('Search', $data);
} else {
$this->load->view('Error_102');
}
模型rest_search:
function rest_main_search($form_data) {
$city= $form_data['city'];
$datepick= $form_data['datepick'];
$category= $form_data['category'];
$this->db->select('*');
$this->db->from('restaurants');
if (!empty($city) && !empty($category)) {
$this->db->where(array(
'city'=>$city,
'category'=>$category
));
} else if(!empty($city) && empty($category)) {
$this->db->where(array(
'city'=>$city
));
} else if(empty($city) && !empty($category)) {
$this->db->where(array(
'category'=>$category
));
}
$query = $this->db->get()->result();
}
查看文件(简短版):
<?php
if(!empty($result)) {
foreach($result as $line) {
?>
<div class="rest_holder main_window">
<div class="row">
<div class="col-md-6">
<?php echo $line->img; ?>
</div>
<div class="col-md-6">
<?php echo $line->name; ?>
</div>
</div>
</div>
<?php } } ?>
这没关系,它可以正常工作:
现在,我有一些额外的过滤器(按...排序),带有复选框以及城市和类别的复选框。 我知道我可以通过AJAX实现这一点,但我有点困惑如何将它与常规(_GET)搜索结合起来。
有什么想法吗?