2015-02-09 114 views
1

我可以问你的帮助如何重定向变量。这是我的代码。重定向到codeigniter中的变量的其他控制器

function new_content(){ 
    $this->output->set_status_header(200); 
    $this->output->set_header('Content-Type: application/json'); 

    $subj_id = $this->input->post('subj_id'); 
    $mod_id = $this->input->post('mod_id'); 
    $lesson_id = $this->input->post('lesson_id'); 

    $sort_id = rand(100,999); 

    $data = array(
     'subj_id' => $subj_id, 
     'mod_id' => $mod_id, 
     'lesson_id' => $lesson_id, 
     'sort_id' => $sort_id 
     ); 
    $create = $this->mdl_lc->_insert($data); 
    // $link = base_url().'lesson_content/edit/'.$subj_id.'/'.$mod_id.'/'.$lesson_id.'/'.$sort_id; 
    // echo base_url().'lesson_content/edit/'.$subj_id.'/'.$mod_id.'/'.$lesson_id.'/'.$sort_id; 
    redirect('lesson_content/edit/'.$subj_id.'/'.$mod_id.'/'.$lesson_id.'/'.$sort_id); 
} 

function edit(){ 
    $subj_id = $this->uri->segment(3); 
    $mod_id = $this->uri->segment(4); 
    $lesson_id = $this->uri->segment(5); 
    $sort_id = $this->uri->segment(6); 
    $data['subj_id'] = $subj_id; 
    $data['mod_id'] = $mod_id; 
    $data['lesson_id'] = $lesson_id; 
    $data['sort_id'] = $sort_id; 
    $data['title'] = 'Lesson Content'; 
    $this->load->view('lesson_content_display',$data); 
} 

注:

  1. lesson_content是控制器。
  2. 编辑是一项功能。
  3. 其余的是我试图包含重定向的变量。

当我做了一些检查元素,结果是在那里,但它不会重定向到我试图去的链接。

+0

您能向我们展示lesson_content :: edit功能吗? – Craig 2015-02-09 11:11:20

+1

完成。谢谢回复。 – Dennis 2015-02-09 11:19:09

+0

我对此感到不好。我在json的返回值之后做了什么,我重新加载它并查看新创建的项目。 :| – Dennis 2015-02-09 12:42:57

回答

0

您可以直接将URI段作为参数传递给编辑功能。

像这样;

public function edit($subject_id = '', $mod_id = '', $lesson_id = '', $sort_id = '') 
{ 
    if ($subject_id == '' OR $mod_id = '' OR $lesson_id = '' OR $sort_id = '') 
    { 
     // IF anything is empty? 
     show_error('Something went wrong...'); 
    } 
    else 
    { 
     $data = array(
      'subj_id' => $subject_id, 
      'mod_id' => $mod_id, 
      'lesson_id' => $lesson_id, 
      'sort_id' => $sort_id 
     ); 

     $this->load->view('lesson_content_display', $data); 
    } 
} 

希望这会有所帮助。

+0

不,不好意思。我得到了一些其他的东西来查看我的lesson_content_display中的视图的某些部分 – Dennis 2015-02-09 11:27:30

+0

您是否修复了我的加载视图函数的拼写错误? – Craig 2015-02-09 11:35:03

+0

nope。我真的需要用该重定向重新加载页面。我需要加载它,因为我将通过这个$ ls_query = Modules :: run('lesson_content/get_lscontent',$ subj_id,$ mod_id,$ lesson_id,$ sort_id)从我的视图调用sort_id;并做一些foreach来填写用户需要编辑的所有字段。 – Dennis 2015-02-09 11:44:00

0

我控制器功能

$link = base_url().'lesson_content/edit/'.$subj_id.'/'.$mod_id.'/'.$lesson_id.'/'.$sort_id; 
    $jdata['redirect_url'] = $link; 
    $jdata['message'] = 'You have successfully created new content!'; 
    $jdata['result'] = "SUCCESS";     
    echo json_encode($jdata); 
    exit(); 

这里里面,在我看来

<script> 
    function create_new(){ 
     $.post('<?php echo site_url('lesson_content/new_content'); ?>', 
      { 
       subj_id  : $('#subj_id').val(), 
       mod_id   : $('#mod_id').val(), 
       lesson_id  : $('#lesson_id').val() 
      }, 
      function(data){ 


        if(data.result=='SUCCESS'){ 
        // $('#lesson_created').val(); 

        $('#lesson_created').html(data.message); 
         //$('#lesson_created').show(); 
         $('#lesson_created').fadeTo(1500, 5.0, function(){ 
         $('#lesson_created').fadeOut(4000); 
          // setTimeout(function(){window.location.reload();}, 2500); 
          window.location.href = data.redirect_url 
         }); 

        } 

      },'json' 
     ); 
    } 
</script> 

我刚加入这行的代码运行JSON结果一些脚本:window.location.href =数据.redirect_url

相关问题