簡體   English   中英

使用Codeigniter PHP插入數據后無法顯示成功消息

[英]Unable to display success message after data is inserted using codeigniter php

嗨,我在博客描述頁面上有評論部分,如果用戶對特定博客的評論無法顯示成功消息,它將直接重定向到博客頁面。

控制器:

function addcomments()
    {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('first_name','First Name' , 'required');
        $this->form_validation->set_rules('email','Email');
        $this->form_validation->set_rules('description','Description');
        if($this->form_validation->run()== FALSE)   
        {   
        $data['mainpage']='blogs';
        $this->load->view('templates/template',$data);
        }
        else
        {

            //insert the user registration details into database
            $data=array(
                'blog_id'=>$this->input->post('bl_id'),
                'first_name'=>$this->input->post('first_name'),
                'email'=>$this->input->post('email'),
                'description'=>$this->input->post('description'),
                );
            if ($this->blogs_model -> insertcomments($data))
            {
                if ($this->blogs_model->sendEmail($this->input->post('email')))
                {
                    //$this->flash->success('msg','<div class="alert alert-success text-center">You are Successfully Registered! Please confirm the mail sent to your Email-ID!!!</div>');
                    redirect("blog");
                }
                else
                {
                    //$this->flash->success('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
                    redirect("blog");
                }

            }
            else
            {
                // error
                $this->flash->success('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
                redirect('blog');
            }
        }
        }

要設置flash_session,您必須這樣做:

$this->session->set_flashdata('item', 'value');

並加載會話庫

$this->load->library('session');

https://www.codeigniter.com/user_guide/libraries/sessions.html

嘗試設定

$this->session->keep_flashdata('message');

在控制器的構造函數中,將用戶重定向到。

在重定向之前,請嘗試使用$this->session->set_flashdata設置會話中的Flash消息,而不是$this->flash->success

因此,在控制器中您可以擁有一個功能:

$flash=1;
redirect(base_url()."blog/".$flash);

在目標函數中,您可以像這樣訪問$ flash值:

$flash= $this->uri->segment(3); 
if(!is_numeric($flash))
{
  redirect();       
}else{
   if($flash== 1){

   }
}

我將segment(3)放進去,因為在您的示例中$ flash在2個破折號之后。 但是,例如,如果您具有以下鏈接結構: www.mydomain.com/subdomain/home/index/$flash ,則必須使用segment(4)

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM