如何将样式应用于我';如果ISSET为真,我会回复


How to apply style to a PHP session variable that I'll echo if ISSET is true

我的视图中有以下代码:

<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
        if(isset($message)){
    ?>
          <div class="msg done"><?php echo $message ?></div>
    <?php
        }
        else{
   ?>
          <div class="nothing">Nothing</div>
  <?php
        }
    ?>

@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中。

如果您还有任何问题,请告诉我。