2011-01-31 2 views
0

이 경우 양식 오류를 양식으로 다시 보내려면 양식 유효성 검사 라이브러리를 가져 오는 데 문제가 있습니다.오류 보내기 양식으로 돌아 가기 : 코드 이니셜

저는 addImage.php라는 이미지 업로드를 처리하는 컨트롤러가 있습니다. 이 컨트롤러는 do_upload 처리 만 처리합니다. 업로드 양식을 포함하고/addImage/do_upload에 제출하는 uploadimage.php라는보기가 있습니다.

업로드 형태는 프론트 페이지 컨트롤러가 현재 검증이 실패 후

home.php

에 포함되어

<?php $this->load->view('uploadimage'); ?> 

사용하여 코드 이그나이터에서 템플릿을 사용하여 내 웹 사이트의 첫 페이지에로드 난 그냥 내 template_fr로 리디렉션 수있는 방법

if($this->_submit_validate() == FALSE) 
     { 
       redirect('/', 'location'); 
       return;   
     } 

명확하게 (addImage.php에) 다시 오류를로드하지 않습니다 홈페이지로 리디렉션 해요 ont.php 이러한 오류를 유지하면서. 어떻게 든 home.php 컨트롤러를 uploadimage.php 컨트롤러에서 불러서이 작업을 수행 할 수 있습니까? 나는 그것을 설명하려고 혼란스러워했다! 이것이 완전히 불명확하면 알려주십시오. 명확히하려고 노력할 것입니다.

답변

2

the Documentation에 대해 오류가 발생하면 단순히보기 파일을 다시로드해야합니다.

if ($this->form_validation->run() == FALSE) 
    { 
    $this->load->view('myform'); 
    } 
    else 
    { 
    $this->load->view('formsuccess'); 
    } 

리디렉션은 유효성 검사 오류 정보를 플러시 새 서버 요청을 생성합니다.

+0

제가하는 데 문제는 내보기는 전체 웹 페이지되지 않는 것입니다 - 내 양식이 것은 단지

일종이다 그래서 전체 웹 페이지를 컴파일 헤더보기 및 바닥 글보기와 템플릿보기를 , 그래서 내가보기를로드하면 페이지의 나머지 부분을 죽이게됩니다. – Rapture

+0

그런 다음 처음에 양식을로드 할 때와 같은 방식으로 모든보기를 다시로드하십시오. – jondavidjohn

+0

컨트롤러 home.php의 인덱스 메서드를 호출하는 방법을 배워야한다고 생각합니다. 코드를 복사하여 붙여 넣지 않고도이 작업을 수행 할 수있는 간단한 방법이 있습니까? – Rapture

0

유효성 검사 실패시 양식을 다시 불러 와야합니다. concel 업로드에 버튼을 추가 할 수 있습니다. 은 if에 대한

<?=form_open_multipart("/personas/savefoto", array('class' => "form3"))?> 
      <h3><?=$heading?></h3> 

      <div class="center"> 
       <?php echo '<strong>'.mb_convert_case($record['nombre'].' '.$record['apellido1'].' '.$record['apellido2'], MB_CASE_TITLE).'</strong><br/>'; 
       if(file_exists("fotos/e".MATRIZ."/b".$record['id'].".jpg")){ 
        ?> 
        <img class="foto" src="<?php echo base_url()."fotos/e".MATRIZ."/b".$record['id']?>.jpg"/> 
        <br/><br/> 
        <?php 
       } ?> 
      </div> 

      <div class="form-row"> 
       <label for="imagen">Nueva imagen <br/>(jpg, gif o png)</label> 
       <input type="file" name="userfile" size="20" /> 
       <br/> 

        <?php if(isset($error_image)) echo '<p class="error">'.$error_image.'</p>'; ?> 
      </div> 
      <div class="form-row center"> 
       <input type="submit" value="Aceptar" /> 
       <input type="button" value="Cancelar" onclick="location.href='/system.php/personas/admin';"> 
      </div> 
      <?=form_close();?> 

보기 (는 isset ($의 error_image))

0

당신은 할 수 :보기에 , 당신이 오류를 표시하는 몇 가지 태그를 추가해야처럼 (검증 helpares에 대한 정보를 많이 있습니다) validation_errors() 함수를 사용하여 세션 변수로 설정하십시오.

$this->session->set_userdata(array('form_errors', validation_errors())); 

그런 다음 리디렉션 페이지에서 액세스하십시오.

echo $this->session->userdata('form_errors'); 
$this->session->unset_userdata('form_errors'); // prevent them from being stored past use