2011-01-31 3 views
0

У меня возникла проблема с получением библиотеки проверки формы, чтобы отправить мои ошибки формы обратно в мою форму в этом случае.Отправка ошибок Вернуться к форме: Code Igniter

У меня есть контроллер, который обрабатывает загрузку изображений с именем addImage.php. Этот контроллер обрабатывает обработку do_upload. У меня есть вид, называемый uploadimage.php, который содержит форму загрузки и отправляет/addImage/do_upload.

Форма загрузки загружается на первой странице моего сайта с помощью шаблона в код воспламенитель с помощью

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

Фронт-контроллер страницы содержится в home.php

Сейчас после проверки не удается, Я просто перенаправляет на главную страницу, которая явно не нагружает ошибки обратно (в addImage.php)

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

Как можно перенаправить на мой template_fr ont.php, сохраняя эти ошибки. Могу ли я каким-то образом вызвать мой контроллер home.php с контроллера uploadimage.php, чтобы сделать это? Я смутил себя, пытаясь объяснить это! Если это неясно, дайте мне знать, и я попытаюсь разъяснить.

ответ

2

В отношении the Documentation вы можете просто перезагрузить файл представления при сбое.

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

redirect генерирует новый запрос сервера, который сбрасывает информацию об ошибке проверки.

+0

Проблема у меня в том, что моя точка зрения не является полной веб-страницы - У меня есть вид заголовка и вид колонтитулов и вид шаблона, который компилирует полный веб-страницу, чтобы моя форма просто

рода вещи , поэтому, если я просто загружаю этот просмотр, он убивает остальную часть страницы. – Rapture

+0

Затем просто перезагрузите все виды, как и при первоначальной загрузке формы. – jondavidjohn

+0

Я думаю, мне просто нужно узнать, как вызвать метод index.php контроллера controller, и он будет работать - есть ли простой способ сделать это, не копируя и не вставляя код? – Rapture

0

При отказе на проверку вы должны перезагрузить форму. Может быть, вы хотите добавить кнопку для загрузки. По мнению, вы должны добавить тег, чтобы показать ошибки (есть много информации о helpares проверки), как в:

<?=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();?> 

взгляд на если (Исеть ($ error_image))

0

Вы могли бы используйте функцию 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 
Смежные вопросы