Codeigniter:获取页面的 URI 段并将其添加到其重定向页面的 URL
Codeginiter: Get the a URI segment of a page and add it to the URL of its redirect page
所以我有这两页
如果 page1 的 URL 是:http://localhost/project/page1/page1/5
那个页面中有一个 link 重定向到 page2 URL:
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');
}
}
我仍然不确定我是否理解你,但你可以这样做:
public function page2($var1, $var2){
}
http://localhost/project/page2/page2/5/2
其中$var1
就是5
,而$var2
就是上面url
中的2
我将 page1 的视图更改为:
<option
value="<?php echo base_url('page2/page2/').$row->p1_val.'/'.$row->p2_val;?>">
<?php echo $row->p2_num; ?>
</option>
控制器没有变化,只是通过使用模型来解决:
$this->uri->segment();
- 大多数更改都是在我进行的数据库查询中进行的。
- 由于我在 page2 中添加了额外的段,我添加了 " ../ " 到资产的路径。
示例 - 第 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
}
所以我有这两页 如果 page1 的 URL 是:http://localhost/project/page1/page1/5
那个页面中有一个 link 重定向到 page2 URL:
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');
}
}
我仍然不确定我是否理解你,但你可以这样做:
public function page2($var1, $var2){
}
http://localhost/project/page2/page2/5/2
其中$var1
就是5
,而$var2
就是上面url
2
我将 page1 的视图更改为:
<option
value="<?php echo base_url('page2/page2/').$row->p1_val.'/'.$row->p2_val;?>">
<?php echo $row->p2_num; ?>
</option>
控制器没有变化,只是通过使用模型来解决:
$this->uri->segment();
- 大多数更改都是在我进行的数据库查询中进行的。
- 由于我在 page2 中添加了额外的段,我添加了 " ../ " 到资产的路径。
示例 - 第 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
}