2013-08-04 3 views
2

내 오류 메시지는 정상적으로 작동하지만 세션의 플래시 데이터가 아닌 성공 메시지를 출력하는 방법을 모르겠습니다.제출 후 성공 사례 표시 CodeIgniter

if($this->form_validation->run() == FALSE){ 
    // $this->session->set_flashdata('error', validation_errors()); // <-- THIS WORKS IN FLASHDATA 
    validation_errors(); <-- THIS WORKS BUT WITHOUT FLASHDATA, WHICH IS GOOD ALSO 
}else{ 
    // Set the callback message 
    $this->session->set_flashdata('success', 'Success!'); // <-- THIS WORKS IN FLASHDATA 
    // AND HOW I SHOULD DO THE SAME, BUT WITHOUT FLASHDATA ? 
    // SO IT WILL WORK WITH MY MAIN TEMPLATE.PHP 

} 
: 나는 폼 체크를 할 때마다

<div class="tpl-callbacks" id="tpl-callback"> 
    <?php 
     if($this->session->flashdata('message')) 
      $message = $this->session->flashdata('message'); 
     if($this->session->flashdata('error')) 
      $error = $this->session->flashdata('error'); 
     if($this->session->flashdata('success')) 
      $success = $this->session->flashdata('success'); 
     // THIS WORKS WITHOUT FLASHDATA 
     if(function_exists('validation_errors') && validation_errors() != '') 
      $error = validation_errors(); 
     // AND HOW TO DO THE SAME BUT FOR SUCCESS AND WITHOUT FLASHDATA ? 
    ?> 
    <?php if(!empty($error)):?> 
     <div class="alert alert-error"> 
      <a class="close" data-dismiss="alert">&times;</a> 
      <?php echo $error;?> 
     </div> 
    <?php endif;?> 
    <?php if(!empty($success)):?> 
     <div class="alert alert-success"> 
      <a class="close" data-dismiss="alert">&times;</a> 
      <?php echo $success;?> 
     </div> 
    <?php endif;?> 
</div> 

그래서 후 flashdata를 사용하지 않고 내가 출력 오류 메시지와 flashdata에 성공 메시지,하지만 난 성공 메시지를 표시하는 방법을 모른다 수, 제출

누군가가 올바른 답을 내게 알려 주거나이를 해결하기 위해 체크 아웃 할 팁을 줄 수 있습니까?

는 리디렉션하지 않는 경우에, 당신은 변수를 사용하여보기를 던질 수있다, 당신

+0

왜 같은 페이지에 양식을 게시하지 않으시겠습니까? – sbaaaang

+0

@sbaaaang - 그걸 시도해 보니 문제는 단지 같은 페이지에서 어떻게 해야할지 몰랐기 때문이죠 – aspirinemaga

+0

어쨌든 문제가 없으니 어쨌든 고쳐 주길 바랍니다.) – sbaaaang

답변

3

에게 잘 감사드립니다. 컨트롤러에서 다음과 같이 표시 될 수 있습니다.

$messages = array(); 
$messages[] = "My message"; 

$view_data['messages'] = $messages; 
$this->load->view('your view', $view_data); 

보기에서 메시지 배열을 사용할 수 있으며 사용할 수 있습니다.

그러나 리디렉션을 원할 경우 일시적으로 어딘가에 저장하여 요청간에 계속 유지해야합니다. codeigniter의 세션 flashdata는 이것에 매우 적합합니다.

validation_errors(); 당신의 통제에서 아무 것도하지 않습니다. 당신이 그것을 되풀이하지 않기 때문에. 아마 당신이보기에 그 함수를 사용했기 때문에 그것이 아마도 효과가있을 것입니다.

+0

좋아요! 너무 단순해서, 어떻게 깨닫지 못했는지 모르겠다. – aspirinemaga

관련 문제