tb_stock:
+------------+--------------+-------------+------------+
| id_stock | name_stock | brand_id | price |
+------------------------------------------------------+
| 1 | iPhone XS | 1 | 1299 |
| 2 | galaxy s10 | 2 | 1000 |
| 3 | galaxy s10+ | 2 | 1100 |
| 4 | IWatch | 1 | 500 |
+------------------------------------------------------+
从上表中,我想在复选框循环中仅显示一个品牌。 我已经使用foreach来获取价值。但是我在复选框中输入了所有品牌。 我想要的是只显示一个品牌并循环播放。
控制器:
public function index(){
$data['getStok'] = $this->M_input->getStok();
this->page->view('product', $data);
}
型号:
public function getStok(){
$query = $this->db->get('tb_stok');
return $query->result();
}
视图:
<?php if(count($getStok)):?>
<?php foreach ($getStok as $a):?>
<div class="form-group">
<div class="col-sm-12">
<input type="checkbox" class="minimal"
id="<?php echo $a->name_stok;?>"
value=<?php echo $a->price;?>>
<label><?php echo $a->name_stok;?></label>
</div>
</div>
<?php endforeach;?>
<?php else :?>
<?php endif ;?>
答案 0 :(得分:0)
如果您一次只需要展示一个品牌,则可以采用以下几种方法:
for
循环中仅过滤一个品牌。这不是最佳方法,因为您将业务逻辑移到了MVC的View级别。Here,您可以在MVC中找到有关业务逻辑的更多说明
只需对模型(和控制器)进行一些更改即可实现第二种方法
控制器:
public function index()
{
// assuming you get the brand ID to display from GET request
$brandId = $this->input->get('brand_id');
$data['getStok'] = $this->M_input->getStokByBrandId($brandId);
this->page->view('product', $data);
}
型号:
public function getStokByBrandId($brandId)
{
$query = $this->db->where('brand_id', $brandId)->get('tb_stok');
return $query->result();
}
视图:
no changes needed