Codeigniter:获取页面的URI段并将其添加到其重定向页面的URL中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeigniter:获取页面的URI段并将其添加到其重定向页面的URL中相关的知识,希望对你有一定的参考价值。

所以我有这2页,如果page1的URL是:http://localhost/project/page1/page1/5

并且该页面中有一个链接,使用URL重定向到page2:

http://localhost/project/page2/page2/2 (其第3段 - 2来自选择的下拉值)

是否可以使用如下URL来重定向页面 - page2:http://localhost/project/page2/page2/5/2

- 所以我可以用page1的值做一些事情,比如在数据库中动态查询。

第1页的视图:

<div class="form-group form-inline">
  <select id="p2_val">

      <?php 
          foreach($v_p2 as $row) {
      ?> 
      <option 
          value="<?php  echo base_url('page2/page2/').$row->p2_val;?>">
          <?php echo $row->p2_num; ?>
      </option>
      <?php }  ?> 

  </select>

      <input  class="SubmitButton" type="submit" 
      name="SUBMITBUTTON" value="Submit" />
</div>

第1页中的控制器:

class Page1 extends CI_Controller{

     public function __construct()
        {
            parent::__construct(); 
            $this->load->model('page1_model');

        }

    public function page1(){
        if($this->session->userdata('logged')){

            $this->load->model('page1_model');

            $data["v_p2"] = $this->page1_model->v_p2($this->session->userdata('user_id'));

            $this->load->view('pages/page1', $data);

            $this->load->view('templates/footer');

        }

    }

第2页控制器:

class Page2扩展CI_Controller {

     public function __construct()
        {
            parent::__construct(); 
            $this->load->model('page2_model');

        }

    public function page2(){
        if($this->session->userdata('logged')){

            $this->load->model('page2_model');

            $data["get_p2"] = $this->page2_model->get_p2($this->session->userdata('user_id'));

            $this->load->view('pages/page2', $data);

            $this->load->view('templates/footer');

        }

    }
答案

我将page1的视图更改为:

  <option 
      value="<?php  echo base_url('page2/page2/').$row->p1_val.'/'.$row->p2_val;?>">
      <?php echo $row->p2_num; ?>
  </option>

控制器没有变化,只需使用以下模型解决模型问题:

$this->uri->segment();

- 然后大多数更改都在我做的数据库查询中。 - 由于我在第2页添加了额外的段,因此我将“../”添加到资源的路径中。

样本 - 第2页的模型:

   function v_p2($data){
        $p1_val = $this->uri->segment(3);
        $p2_val = $this->uri->segment(4); 

         //DO smth with $p1_val & $p2_val
         //These values were used for querying


}
另一答案

我仍然不确定我是否理解你但你能做到:

public function page2($var1, $var2){

}

http://localhost/project/page2/page2/5/2

其中$var15$var2是上面的网址中的2

以上是关于Codeigniter:获取页面的URI段并将其添加到其重定向页面的URL中的主要内容,如果未能解决你的问题,请参考以下文章

使用 CodeIgniter 分页时丢失 URI 段

CodeIgniter / PHP:如何在 .php 视图页面中获取 URI

Codeigniter URI 段返回布尔值

如何处理 Codeigniter 上的多语言 uri 重定向?

CodeIgniter 3 URI 参数和 404 页面

如何在CodeIgniter中刷新当前页面