【发布时间】:2014-10-14 05:36:11
【问题描述】:
我认为有这段代码:
<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) 为 TRUE 且显示 $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;}
鉴于ISSET($message) 为TRUE,我如何仅将样式应用于$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 时,就会遇到问题。
【问题讨论】:
-
亲爱的尝试我的解决方案,如果它不起作用我想删除它。谢谢,让我知道。它基于您原来的问题。谢谢
标签: php html css codeigniter