2

キーボードアプリをバーのタッチスクリーンアプリに再設計したい(Codeigniterを使用しています)。

記事を2つの部分に表示したい:1。すべてのarticle_categoryのリスト2. article_categoryを選択したタブの下に、article_name + article_price+article_imageが表示されます

VINES BEERSDRINKS<-カテゴリ

WHITEVINE<-タブVINESの下の異なるアリクル名

レッドヴァイン

メルローカベルネ

構造体を含むSQLテーブルの記事があります:article_id aricle_name article_category article_price article_image

解決策を探していたところ、JQUERYタブが問題の解決に役立つことがわかりました。

WebでCIカートのデモを見つけました。そのデータベースを自分のものに置き換えました。それはタブのために正確に働いています!タブにリストされているすべてのカテゴリを取得しました。

しかし、選択したタブのデータを取得する方法がわかりません(category.phpを調べてください)?

私のファイル:app / controllers / cart.php

<?php
    class Cart extends Controller { // Our Cart class extends the Controller class
        function Cart()
        {
            parent::Controller(); // We define the the Controller class is the parent.

            $this->load->model('cart_model'); // Load our cart model for our entire class
        }
        function index()
        {
            $data['categories'] = $this->cart_model->retrieve_category(); // Retrieve an array with all categories
            $data['products'] = $this->cart_model->retrieve_products(); // Retrieve an array with all products
            $data['content'] = 'cart/categories'; // Select view to display
            $this->load->view('index', $data); // Display the page
        }
    }

私のファイル:app / models / cart_model.php

<?php
class Cart_model extends Model {
    // Function to retrieve an array with all product information
    function retrieve_products(){
        $query = $this->db->get('phppos_item_kits');
        return $query->result_array();
    }
    // Function to retrieve an array with all product information
    function retrieve_category(){
        $this->db->select('distinct(category)');
        $this->db->from('phppos_item_kits');
        $query = $this->db->get();
        return $query->result_array();
    }
}

私のファイル:app / views / cart / category.php

<head>
<link href="<?php echo base_url(); ?>assets/js/base/jquery-ui.css" media="screen" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/base/jquery-ui.js"></script>
  <script>
  $(document).ready(function() {
    $("#tabs").tabs({event: "mouseover"});
  });
  </script>
</head>
<div id="tabs">
    <ul>
    <?php foreach($categories as $c): ?>
        <li><a href="#fragment"><span><?php echo $c['category']; ?></span></a></li>
    <?php endforeach;?>
    </ul>
        <div id="fragment">
        <?php foreach($products as $p): ?>
                <li><?php echo $p['name']; ?>,<?php echo $p['category']; ?></li>
        <?php endforeach;?>
        </div>
</div>

私のファイル:app / views / index.php

<!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/js/base/jquery-ui.css" media="screen" rel="stylesheet" type="text/css"/>
<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-ui.min.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/core.js"></script>
</head>
<body>
<div>
    <?php $this->view($content); ?>
</div>
</body>
</html>
4

1 に答える 1

-1

解決策は (主に) PHP コードにある必要があり、それに応じて JavaScript を調整する必要があります。

具体的には、カテゴリごとに、そのカテゴリに属する​​製品のリストを割り当てる必要があります。 SQL または PHP で実行できます。

SQL を使用すると、単純なアプローチで実行できます。つまり、カテゴリ リストに対して 1 つの選択を行い、次にカテゴリごとに 1 つの選択を行います。これは、1+n 選択の問題を意味します。ただし、カテゴリが少ない場合は許容される場合があります。

または、JOIN を使用して行うこともできます。これにより、1+n の問題が解消されます。空のカテゴリでも表示する必要がある場合は、LEFT OUTER JOIN が必要です。そうでない場合は、[INNER] JOIN が必要です。

それが役に立てば幸い。説明/例が必要かどうか教えてください。

于 2012-11-04T21:55:47.093 に答える