我想要的值为“flashdata”echo 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->session->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中\希兰-梅迪\应用\控制器\管理员\ accommodation.php 在第36行
答案 0 :(得分:2)
您需要首先将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; ?>