codeigniter如何在更新完成后传递Value并重定向到Index()

how do i pass TRUE / FALSE after update done and redirect to Index() and set

condition $viewdata['show'] to append my html sucess or something

My Controller

class Description extends CI_Controller {

    public function index()
    {
        $viewdata['content']=$this->General_model->get_page_uri();

        $viewdata['show']=; //where i want to get value when update() method 
                            //pass value so i can show sucess / error message

        $this->load->view("backend/content_view",$viewdata);
    }
    public function update()
    {
        $title=$this->input->post('txttitle');
        if($title != '')
        {
            if(!$this->update_model->update_all($title))
            {
                return FALSE; 
            }

            return TRUE;
        }
        redirect('Admin/Description');
    }

}

My Model

public function update_all($data)
    {
        $this->db->set('desc',$data)
            ->where('desc_id','1');
        if(!$this->db->update('tbl_desc'))
        {
            return FALSE;
        }

        return TRUE;

    }

@Ritesh d joshi thz it work but i face problem that i can't modify when update error i test to change my field name to other to test return false;

Admin/Description/update

it show me 'A Database Error Occurred' by Codeigniter

i don't want this to show i want to keep my Admin page still same just alert nomol message error that i have set not to show many info error. how could i prevent this or this can be done by Ajax request only ?

Controller index()

    if($show_ses === '0')
            {
                 $viewdata_result = $this->General_model->rk_alert_ok('Successfully Update');
                 $this->session->set_flashdata('show', 'false');

            }elseif($show_ses === '1'){

                 $viewdata_result=$this->General_model->rk_alert_no('Fail Update Request');
                 $this->session->set_flashdata('show', '');
            }

Controller update()

    if(!$this->update_model->update_all($title))
    {

        $this->session->set_flashdata('show', '1');
        //1= false
    }else{
        $this->session->set_flashdata('show', '0');
        //0=true
    }

Use the PHP header() function.

header('Location: your_URL');

Update:

In CI, you can use redirect() function, this document will help you to understand: http://www.codeigniter.com/user_guide/helpers/url_helper.html

Please try this

 class Description extends CI_Controller {

        public function index()
        {
            $viewdata['content']=$this->General_model->get_page_uri();

           $show= $this->session->flashdata('show');

        if($show){
               // Here is code for show  and message
              $viewdata['show']="message";
              $this->session->set_flashdata('show', 'false');
         }  


            $this->load->view("backend/content_view",$viewdata);
        }
        public function update()
        {
            $title=$this->input->post('txttitle');
            if($title != '')
            {
                if(!$this->update_model->update_all($title))
                {
                    return FALSE; 
                }
                $this->session->set_flashdata('show', 'true');

                return TRUE;
            }
            redirect('Admin/Description');
        }

    }

You can use redirection in update() as:

public function update()
{
    $title = $this->input->post('txttitle');
    if($title != '')
    {
      $status = $this->update_model->update_all($title);        
      if($status){
        redirect(base_url().'index?show=1');
      }
      else{
        redirect(base_url().'index?show=0'); 
      }
    }
    redirect('Admin/Description');
}

than you can check the status in index() as:

public function index()
{
    $viewdata['content']=$this->General_model->get_page_uri();
    if(isset($this->input->post('show')) && intval($this->input->post('show')) == 0){
      $viewdata['show'] = 1; // if success than show 1
    }
    else{
      $viewdata['show'] = 0; // if error than show 0
    }                   
    $this->load->view("backend/content_view",$viewdata);
}

You can use the Header function, and to detect it you can pass the parameters too in the GET Url like below.

By default set the status as FALSE. ANd you can update the status according to your conditions either to FALSE or TRUE.

public function update()
        {
            $status = false;
            $title=$this->input->post('txttitle');
            if($title != '')
            {
                if(!$this->update_model->update_all($title))
                {   
                    $status = FALSE;
                    return FALSE; 
                }
                $this->session->set_flashdata('show', 'true');
                 $status = TRUE;
                return TRUE;

            }
            header('Location: abc.php?status='.$status);
        }

Hope This will work, Do let me know in case of any confusion.