2014-10-14 4 views
0

에 해당하면 내가 에코거야하는 PHP 세션 변수에 스타일을 적용합니다. 내가 $message에 스타일을 적용하기 위해, 다음과 같은 방법으로이 사업부를 편집하려고 할 때를 제외하고 :어떻게는 isset은 내가보기에이 코드 비트가

<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;} 

는 난 단지 어떻게 적용 할 수 있습니다

이 스타일에 대한 참조는 다음과 같은 방법으로 내보기 페이지에서 언급 한 스타일을 $message으로 지정하면 ISSET($message)이 참입니까? 내 문제는 생각 : ISSET($message) 값에 관계없이, 내 전체 div 스타일입니다. 그래서이 스타일은 항상 거기에 남아 있습니다. 어쨌든이 문제를 해결할 수 있습니까?

편집 - 1 : 내가 언급하는 것을 잊었다

, 이것은 CodeIgniter의 응용 프로그램입니다. My $ 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

@Crecent 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에 스타일이 적용되지 않습니다.

아직 문제가있는 경우 알려주세요.

+0

그것은 작동하지 않는다, 작풍은 아직도 나타나고있다. $ message는 세션 변수입니다. –

+0

@Crecent Moon, 세션 변수 인쇄 후 echo $ messege 바로 다음에 변수의 설정을 해제해야합니다. 그래서 세션 변수는 설정되지 않았고 스타일 또한 페이지에서 사라집니다. 시도해 주시겠습니까? –

+0

'echo ($ message)'후에'unset ($ message)'를 추가했지만 스타일은 여전히 ​​남아 있습니다. –

0
<?php 
     if(isset($message)){ 
    ?> 
      <div class="msg done"><?php echo $message ?></div> 
    <?php 
     } 
     else{ 
    ?> 
      <div class="nothing">Nothing</div> 
    <?php 
     } 
    ?> 
+0

같은 문제가 있습니다. 메시지는 사라지지만 스타일은 그대로 남아 있습니다. –

+0

어디서나 스타일 디스플레이에 사용됩니다 : 없음; ? –

관련 문제