【问题标题】:problem in show message set_flashdata with div in codeigniter?在 codeigniter 中显示带有 div 的消息 set_flashdata 的问题?
【发布时间】:2011-08-21 16:42:46
【问题描述】:

我想要当有值“flashdata”回显id='error_text'$this>session>flashdata('error')。怎么样?
此代码有错误:

   <?php
      isset($this->session->flashdata('error'))
      {
          "<div id='error_text'>" . $this->session->flashdata('error') . "</div>"}
    ?>

错误:

致命错误:无法在写入上下文中使用方法返回值 D:\xampp\htdocs\mehdi\system\core\Loader.php(679) : eval()'d 第 2 行代码

如果使用这个:

#error_text {
    background-color: #000000;
}
<div id="error_text"><?=$this->session->flashdata('error');?></div>

如果$this-&gt;session-&gt;flashdata('error') 不显示消息背景,则它始终为黑色 (#error_text{background-color: #000000;})。

编辑:

在控制器中:

if ($this->db->count_all($this->_table) == 0) {
        $this->session->set_flashdata('error', 'Error have.');
        $error = isset($this->session->flashdata('error')) ? $this->session->flashdata('error') : FALSE; // Line 36
        redirect('admin/accommodation/insert');
        } else {
        return 0;
        }

在视图中:

<?php if($error){"<div id='error_text'>".$this->session->flashdata('error')."</div>"}?>

新错误:

致命错误:无法在写入上下文中使用方法返回值 D:\xampp\htdocs\Siran-mehdi\application\controllers\admin\accommodation.php 第 36 行

【问题讨论】:

    标签: php session codeigniter


    【解决方案1】:

    您首先需要将 flashdata 转换为变量。并在您的控制器中执行此操作,然后将其发送到查看。最好将逻辑与表示分开。

     if ($this->db->count_all($this->_table) == 0) 
     {
        $this->session->set_flashdata('error', 'Error have.');
        // You doesn't need that here...
        // $error = isset($this->session->flashdata('error')) ? $this->session->flashdata('error') : FALSE; // Line 36
        redirect('admin/accommodation/insert');
     } 
     else 
     {
        return 0;
     }
    
    
    // Then for validate, in 'admin/accommodation/insert'
    $error = $this->session->flashdata('error');
    
    $data = array();
    
    //...
    
    $data['error'] = $error;
    $this->load->view('someview',$data);
    
    // And in your view file
    <?php if($error) : ?>
    <div id="error_text"><?php echo $error ?></div>
    <?php endif; ?>
    

    【讨论】:

    • 我的代码是这样的:见:$this-&gt;session-&gt;set_flashdata('error', 'Successfully');redirect('admin/accommodation/insert');。重定向如何?
    • 我编辑帖子并将新代码放入其中有错误,请查看并告诉我什么问题?
    • 您将该行(第 36 行)放在目标控制器上,即 admin/accommodation/insert
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    相关资源
    最近更新 更多