Codeigniter在url中重新加载id为id的页面

时间:2013-05-19 22:58:17

标签: php codeigniter

在我正在编码的这个网站上,我有一个可以通过以下网址访问的页面:

http://site.com/campaigns/view/

显示所有广告系列的默认视图,并说出

http://site.com/campaigns/view/8

显示广告系列8的详细信息

在此页面上,我有一个表单,您可以从中添加特定广告系列的订阅者。 我的控制器逻辑是这样的:

$campaign_id = $this -> uri -> segment(3);
$this -> campaign_model -> get_campaign_details(3);

// Form was submitted
if ($this -> input -> post()) {
    //code to check inputs and save subscriber
} else {
    // Display page with campaign details
} 

现在我的问题是,在else分支中,我将如何显示包含广告系列详细信息的页面。我试过了 redirect("campaigns/view/8") 这会创建一个重定向循环

$this -> load -> view("campaigns/view/".$campaign_id)

当然会尝试加载不存在的视图8.php。 那么我将如何实现这样的功能呢?

提前致谢!

吉姆

编辑:

如果没有帖子提交,我希望看到的是详细信息,其中包括订阅者列表,活动编号8,9等。

如果有帖子提交,我想再次看到详细信息页面,当然这次会包括新添加的用户。

再次提交 - >添加订阅者 - >再次详细查看等等。

2 个答案:

答案 0 :(得分:0)

如果不是在帖子提交后,您需要具体说明在广告系列8的情况下您要输出的内容。 当然,重定向只会回到同一页面。

您希望看到什么样的行为发生?

答案 1 :(得分:0)

// If no `campaign_id` in the url, set campaign id to 0
$campaign_id = $this->uri->segment(3, 0);

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

// Form was submitted
if ($this->input->post()) {
    //code to check inputs and save subscriber
}

if ($campaign_id > 0) {
    $data['campaign_details'] = $this->campaign_model->get_campaign_details($campaign_id);
    // Display page with campaign details
    $this->load->view('campaign/details', $data);
}
else {
    $data['campaign_list'] = $this->campaign_model->get_campaign_list();
    // Display list of campaigns
    $this->load->view('campaign/list', $data);
}