我在CodeIgniter中创建了一个函数,因此有人点击类别侧栏中的某个类别,它会链接到具有该类别ID的新页面,并显示所有具有相同类别ID的产品。
现在我想要的是你可以在同一页面上同时选择带有复选框的多个类别,但我不知道该怎么做。
我在这里链接了视图页面上的类别侧边栏:
<div class="categorieen">
<?php foreach (get_categories_h() as $category) : ?>
<input id="box1" type="checkbox" />
<label for="box1"><a class="listcat" href="<?php echo base_url().'Product/category/' . $category->id; ?>"> <?php echo $category->name; ?></a></label>
<?php endforeach; ?>
</div>
使用db_helper.php文件,我从数据库中获取类别:
<?php if (!function_exists('get_categories_h')) {
function get_categories_h(){
$CI = get_instance();
$categories = $CI->Product_model->get_categories();
return $categories;
} } ?>
Category_model查找功能:
<?php
class Category_model extends CI_Model {
public function find($id)
{
$this->db->where('id',$id );
return $this->db->get('categories')->row();
}
}
?>
在Product_model中的函数:
/** Zoek alle products in table products met deze functie (word gebruikt voor categorieen) **/
public function findAll(){
return $this->db->get('products')->result();
}
/** Zoek category_id in table products **/
public function findByCategory($category_id)
{
$this->db->where('category_id', $category_id);
return $this->db->get('products')->result();
}
所以是的,我如何更改我的代码,而不是将其链接到另一个页面,用户必须能够选择多个类别并在同一页面上显示产品?
答案 0 :(得分:2)
您可以将ajax调用(调用控制器/操作)绑定到复选框的更改事件。
1)然后,您可以获取与已检查类别相关的产品,然后返回所需的产品详细信息,构建HTML(客户端)并替换新的产品HTML。
2)您也可以从服务器端构建HTML,您可以从服务器端返回HTML。
$this->load->view('product_html_file', $products,TRUE);
以上将返回您要替换的部分的HTML。将其发送到ajax响应并替换部分
希望这有帮助。