【发布时间】:2016-11-24 07:29:22
【问题描述】:
如何根据选择的 id 显示图像。在添加投资组合图像时,我将数据插入到两个表中,即投资组合表和投资组合标签表。
我有三个表投资组合、标签和投资组合标签。
portfolio
=============
portfolio_id image_path
1 image.png
2 imag.png
3 images.png
4 img.png
5 imagess.png
Tags table:
==========
tag_id tag_name
1 All
2 CMS
3 DESIGN
portfolio_tag
=============
portfolio_id tag_id portfolio_tag_id
1 1 1
1 2 2
2 3 3
3 1 4
我将获取所有标签数据以及投资组合数据。打开页面时,它将显示与所有标签相关的所有数据。但是当我们选择特定时,仅显示与该标签相关的信息。 例如:如果我选择 CMS,它应该只显示与 CMS 相关的信息,如果我选择 DESIGN,则应该只显示与该标签相关的信息。
谁能建议我如何做到这一点。
这是我的代码。
控制器:
public function index()
{
$this->load->model('portfolio_model');
$data["records2"] = $this->portfolio_model->get_portfolio();
$data["records3"] = $this->portfolio_model->get_tags();
$data['mainpage'] = "portfolio";
$this->load->view('templates/template',$data);
}
型号:
function get_portfolio($limit, $start)
{
$this->db->limit($limit, $start);
$this->db->Select('portfolio.*');
$this->db->From('portfolio');
$this->db->where(array('portfolio.status'=>1));
$q=$this->db->get();
if($q->num_rows()>0)
{
return $q->result();
}
else
{
return false;
}
}
function get_tags()
{
$this->db->Select('tags.*');
$this->db->From('tags');
$q=$this->db->get();
if($q->num_rows()>0)
{
return $q->result();
}
else
{
return false;
}
}
查看:
<?php $this->load->view('tagss');?>
<?php
$cnt = 0;
if(isset($records2) && is_array($records2)):?>
<?php foreach ($records2 as $r):?>
<div class="portfolioimages">
<a href="<?php echo $r->website_url;?>" target="_blank"><img src="<?php echo base_url();?>admin/images/portfolio/thumbs/<?php echo $r->image_path;?>" /></a>
</div>
<?php
if(($cnt%3) == 0) { echo "<br>"; }
$cnt++;
endforeach; endif;?>
标签
<?php if(isset($records3) && is_array($records3)):?>
<?php foreach ($records3 as $r):?>
<div class="materials">
<div class="class453">
<a href="#" class="read_more12"><?php echo $r->tag_name;?></a>
</div>
</div>
<?php endforeach ;endif;?>
<script type="text/javascript">
$('.materials a').not('.materials a:first').addClass('opacty');
$('.materials a').click(function(e){
$('.materials a').not(this).addClass('opacty');
$(this).removeClass('opacty');
});
</script>
【问题讨论】:
-
你的意思是当我们点击一些特定的标签比如“设计”时,投资组合图像应该被过滤,并且只应该显示“设计”标签的投资组合图像?
-
首先我将显示所有标签的所有图像。如果我选择任何标签,则只应显示该特定标签的图像。
-
好的..所以这是代码中唯一的要求,对吧?
-
我在这里分享了屏幕截图,您可以检查默认情况下它将显示所有图像。接下来,如果我选择设计或 cms,则仅应显示与该标签相关的图像,而不是所有图片。
-
@sheetal 是的,我们需要更改代码本身
标签: php jquery html mysql codeigniter