我认为我有这段代码:
<div>
<?php
if(ISSET($message))
echo $message;
?>
</div>
对我来说很好。除此之外,当我尝试按以下方式编辑此div时,将样式应用于$message
:
<div class="msg done">
<?php
if(ISSET($message))
echo $message;
?>
</div>
即使我的会话过期,或者即使ISSET($message)
为FALSE,该样式仍会保留在我的视图页面中。基本上,我希望仅在ISSET($message)
为真且显示$message
时才应用此样式,否则不会。
我的视图页面以下列方式提及对此样式的引用:
<link rel="stylesheet" media="screen,projection" type="text/css" href="css/main.css" />
在main.css中,样式在这里完成:
.msg.done {background:url("../design/ico-done.gif") 10px 50% no-repeat;}
如果$message
为真,我怎样才能将样式应用于ISSET($message)
?我认为我的问题是:无论ISSET($message)
值如何,我的整个div都是样式化的。这就是为什么这种风格始终存在。无论如何我可以解决这个问题吗?
编辑 - 1:
我忘了提一下,这是一个CodeIgniter应用程序。我的$ message变量是一个来自我的控制器的会话变量 - employees.php
。我的整个控制器代码都在下面给出,也许有一些错误:
<?php
if ( ! defined('BASEPATH')){ exit('No direct script access allowed');}
class Employees extends CI_Controller
{
function __construct()
{
parent::__construct();
//$this->load->helper('url');
$this->load->model('employee_model');
$this->load->library('pagination');
$this->load->library('session');
}
//Show all employees
public function index()
{
//$data['employee_list'] = $this->employee_model->get_all_employees();
//pagination codes
$config = array();
//$config['base_url'] = base_url().'admin_logins/employee2';
//$config['base_url'] = base_url('admin_logins/employee2');
$config['base_url'] = site_url('admin_logins/employee2');
$config['total_rows'] = $this->employee_model->record_count();
$config['per_page'] = 10;
$config["uri_segment"] = 3;
$choice = $config["total_rows"] / $config["per_page"];
$config["num_links"] = round($choice);
$this->pagination->initialize($config);
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data["results"] = $this->employee_model->
fetch_employees($config["per_page"], $page);
$data["message"] = $this->session->flashdata('message');
$data["links"] = $this->pagination->create_links();
$this->load->view('/admin_logins/employee_list', $data);
}
//Insert an employee
public function insert_employee_db()
{
$edata['emp_id'] = $this->input->post('emp_id');
$edata['emp_name'] = $this->input->post('emp_name');
$edata['emp_mobile_no'] = $this->input->post('emp_mobile_no');
$res = $this->employee_model->insert_employee($edata);
if($res)
{
$this->session->set_flashdata('message','Employee added successfully');
header('location:'.base_url()."index.php/employees/".$this->index());
}
}
//Edit an existing employee
public function edit_employee_db()
{
$edata['emp_id']=$_POST['emp_id'];
$edata['emp_name']=$_POST['emp_name'];
$edata['emp_mobile_no']=$_POST['emp_mobile_no'];
$res=$this->employee_model->edit_employee($edata, $_POST['emp_id']);
if($res)
{
$this->session->set_flashdata('message','Employee edited successfully');
header('location:'.base_url()."index.php/employees/".$this->index());
}
}
}
?>
编辑 - 2:
我的最新尝试:
<?php
if(isset($message)){
?>
<p class= "msg done">
<?php
echo $message;
unset($message);
?>
</p>
<?php
}
else {
}
?>
但是,仍然没有运气。
编辑 - 3:
我已按以下方式编辑了我的代码:
<?php
if(ISSET($message))
echo $message;
?>
现在它工作正常,一旦会话到期,消息就会消失。
另外,如果我按以下方式编辑它:
<div style = "color: red">
<?php
if(ISSET($message))
echo $message;
?>
</div>
它工作正常,会话到期时样式和消息都消失了。
但每当我通过外部css文件main.css
将样式应用于我的div时,我就遇到了问题。
答案 0 :(得分:0)
@Crescent Moon,请在您的申请中使用以下代码。
<?php $style = (isset($message)) ? 'msg done' : ''; ?>
<div class="<?php echo $style; ?>">
<?php
//Print $message & unset appropriate session variable.
if(isset($message)) {
echo $message;
unset($message);
}
?>
</div>
所以按照上面的代码样式只应用$ message,否则你的样式不适用于div。
如果您还有任何问题,请与我们联系。
答案 1 :(得分:0)
<?php
if(isset($message)){
?>
<div class="msg done"><?php echo $message ?></div>
<?php
}
else{
?>
<div class="nothing">Nothing</div>
<?php
}
?>