【问题标题】:How to implement filter in codeigniter framework如何在codeigniter框架中实现过滤器
【发布时间】:2013-11-07 10:30:49
【问题描述】:

我在这里有一个网页我正在显示我的产品详细信息,在这个页面中,我想要以下要求

Display products should have filtering options:
         a. From lower to higher price
         b. From Higher to lower price
         c. Newly created 
         d. Alphabetical order

我想知道如何实现上述要求。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en-us" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CodeIgniter Shopping Cart</title>

<link href="<?php echo base_url(); ?>assets/css/core.css" media="screen" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/core1.js"></script>
</head>

<body>
    <div id="cart_data">
           <a href="<?php echo base_url(); ?>cart1/show_cart">View Cart </a>
    <div id="cart_message"> </div>
<div id="wrap">

    <?php $this->view('products1'); ?>
    <!--
    <div class="cart_list">
        <h3>Your shopping cart</h3>
        <div id="cart_content">
            <?php //echo $this->view('cart1.php'); ?>
        </div>
    </div>-->

</div>
   <!-- <p style="text-align: justify;"><div id="pagination"> <?php //echo $links; ?> </div></p>-->
    </div>
</body>
</html>

【问题讨论】:

  • 如果你想在客户端进行排序,那么 juqery datatable 是最好的选择。

标签: php codeigniter codeigniter-2


【解决方案1】:

您没有说产品是否存储在数据库中。如果他们不是,他们可能应该是。

如果您的产品存储在数据库中,使用 $this->db->order_by('field_name desc|asc'); 订购它们很简单。请注意,您没有要求“过滤”,而是要求“订购”

所以,请阅读有关 codeigniter 使用的 MVC 方法的文档。创建一个产品模型来处理创建产品表、添加、删除和获取产品,以及您需要的订购。制作一个控制器来协调这些任务,并创建视图来显示数据。

想一想您希望 product 表执行的操作,并计算出您需要存储什么来实现这一点 - 所以根据您的描述,products 表需要以下内容:

    create table products (
      id int unsigned auto_increment,
      name varchar(255) not null,
      price float unsigned not null,
    primary key (id))
    ENGINE=InnoDB default CHARSET=utf8 COLLATE=utf8_unicode_ci;

然后您可以将结果作为对象数组获取,例如:

function get_records($order_by)
{
  return $this->db->from('products')
     ->order_by($order_by)
     ->get()
     ->result();
}

order by 在哪里

a: 价格上升

b: 价格描述

c: id desc

d: 名称 asc

【讨论】:

    猜你喜欢
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2017-04-26
    • 2015-12-29
    • 1970-01-01
    相关资源
    最近更新 更多