将图像ID传递给URL段

时间:2016-02-17 20:04:41

标签: php jquery image twitter-bootstrap codeigniter-3

我正在尝试单击图像上的下一个按钮以从数据库中提取的结果中加载下一个图像,但是加载一个新页面,因此引导程序轮播不能正常工作。

我们说我有一张包含3张图片的相册。这些图像的图像ID为 - 25,34,36。当我查看所有图像的相册时,我可以点击图像ID 34.这将带我到www.domain.com/image/34我点击下一步我想重定向到www.domain.com/image/36然后再点击下一步会重定向到www.domain.com/image/25

所以这就是我到目前为止:

控制器:

function index($image_id)
{
    // get album data                       
    $this->data['image_data'] = $this->album_model->get_album_image_data($image_id);

    $album_id = $this->data['image_data']->album_id;
    $this->data['album_images']  = $this->album_model->get_all_images($album_id);

    $data = $this->data;           

    $this->_render_page('images/image', $data);
}

查看:

foreach($album_images as $img)
{
    if($img->image_id == $this->uri->segment(2))
    {
        echo '<img src="'.$img->image_url.'" class="img-responsive img-panel" class="img-responsive" />';
    }  
}
<!-- Image nav -->
<a class="fui-arrow-left left" href="#"></a>
<a class="fui-arrow-right right" href="#"></a>

如何获取下一个和上一个image_id?

如果我需要提供更多信息,请与我们联系。

2 个答案:

答案 0 :(得分:0)

你可以使用分页,首先加载分页库。$this->load->library('pagination'); 参考https://codeigniter.com/user_guide/libraries/pagination.html?highlight=pagination

<强>控制器

public function index()
{
   $config['base_url'] = site_url('dashboard-clients');
   $config['total_rows'] = //total count of your image or data
   $config['per_page'] = 1;

  //show the number of pages
  $choice = $config['total_rows']/$config['per_page'];
  $config['num_link'] = round($choice);
  $this->pagination->initialize($config);
  $page = ($this->uri->segment(2)) ? $this->uri->segment(2) :0;
  $result = $this->Your_Model->get('table name',$config['per_page'], $page)
  $str_links = $this->pagination->cretae_links();
  $data['links'] = explode('&nbsp', $str_links);
  if($result != FALSE)
  {
    $data['data'] = $result;
    $this->load->view('yoyr view file', $data);
  }
}

<强>模型

public function get($table, $limit, $start)
{
  $this->db->limit($limit, $start);
  $query = $this->db->get($table);
  if($query->num_rows() > 0)
  {
    return $query->reult();
  }
  else
    return FALSE;
}

查看

foreach($data as $img)
{
     echo '<img src="'.$img->image_url.'" class="img-responsive img-panel" class="img-responsive" />'; 
}
//create links like 1 ,2, 3,next
<div id="pagination" align="center">
     <ul class="pagination">
         <?php if (isset($links) and is_array($links)) {
              foreach ($links as $link) {
                  echo '<li>'.$link.'</li>';
               }
           }?>
     </ul>
</div>

答案 1 :(得分:0)

感谢所有建议,但实际上我找到了一种更简单,更清洁的方法。

我发现这个function我创建了一个数组助手,它帮助我将图像ID存储在一个数组中。

一旦我能够将我的ID存储在我需要的数组中,我就将其添加到我的视图中:

$index = array_search($this->uri->segment(2), $image_ids);                        
$next = (count($image_ids) == $index+1) ? $image_ids[0] : $image_ids[$index+1];                        
$prev = ($index == 0) ? $image_ids[count($image_ids)-1] : $image_ids[$index-1]; 

<a class="fui-arrow-left left" href="<?=$prev?>"></a>
<a class="fui-arrow-right right" href="<?=$next?>"></a>