如何在codeigniter中显示消息?

时间:2012-08-29 08:03:23

标签: php codeigniter message

我想在重定向链接上显示内容更新的成功消息。这是我的控制器代码: -

public function add_content()
        {
        $this->load->helper('url');
    $id=$this->input->post('id');
        $content=$this->input->post('content');
        $title=$this->input->post('title');
        $this->load->model('admin/contentmodel');
    $status=$this->contentmodel->addcontent($id,$title,$content);
        if($status==1)
           {
            $this->session->set_flashdata("message","<font class='success'>Content Successfully Updated..!!</font>");
            redirect('admin/login/dash');
            }
        else
          {
           $this->session->set_flashdata("message","<font class='success'>Content Not Updated..!!</font>");
           redirect('admin/content/home');
          }
        }

我的内容已成功更新,现在我想在特定的重定向链接上向用户显示该消息。因为我在上面的代码中设置了消息:

$this->session->set_flashdata("message","<font class='success'>Content Successfully Updated..!!</font>");

所以你们可以请让我知道我哪里出错了我怎么能在视图上显示错误信息?当我的重定向转到控制器 - &gt;而不是在view.so我怎么能从我的错误MSG流出controller-&gt; view.Thanks提前。

6 个答案:

答案 0 :(得分:7)

打开application/config/config.php并修改以下行:

$config['encryption_key'] = '';

通过向字符串添加一些随机值

$config['encryption_key'] = 'q0231sz!!1@asd';

之后,当您使用

设置消息时
$this->session->set_flashdata('key', 'value');

在您的视图文件中只需回显

echo $this->session->flashdata('key');

请注意,此不会在此次加载时回显'value',但会在刷新页面后回显它

$this->session->set_flashdata('mykey', 'testing');
echo $this->session->flashdata('mykey'); // will echo '' (nothing)

答案 1 :(得分:2)

您的错误的解决方案在您的问题中指出:

  

要使用Session类,您需要在配置文件中设置加密密钥。

答案 2 :(得分:2)

您可以将控制器设置为,

$this->data['errormsg'] = "message";

然后将视图设置为

  echo isset($errormsg)?$errormsg:"" ;

答案 3 :(得分:0)

/* Do this in controller */

//This should have message you needed. Try logging in file for testing
$message = $this->session->flashdata("message");

$data["message"] = $message;

$this->load->view("yourview",$data);

/* Do this in your view */

echo $message;

答案 4 :(得分:0)

**Set flash data in controller**

message - flash data session name. 

$this->session->set_flashdata('message', 'Sucessfully updated.');

Read flash data(Pass in view with bootstrap alert)

 <?php if($this->session->flashdata('message')){?>
   <div class="alert alert-success">      
    <?php echo $this->session->flashdata('message')?>
 </div>
 <?php } ?>

答案 5 :(得分:0)

将以下代码添加到控制器/型号中: -

if($status==1)
{
     $data=array(
         'class' => 'success',
         'message' => 'Content Successfully Updated..!!'
     );
     $this->session->set_flashdata("dash",$data);
     redirect('admin/login/dash');
}
else
{
     $data=array(
         'class' => 'danger',
         'message' => 'Content Not Updated..!!'
     );
     $this->session->set_flashdata("dash",$data);
     redirect('admin/content/home');
}

在您的视图中添加以下代码: -

if($this->session->has_userdata('dash'))
{
   echo '<div class="alert alert-'.$this->session->dash['class'].'">'.$this->session->dash['message'].'</div>';
}