Отправка ошибок обратно в форму: воспламенитель кода - PullRequest
0 голосов
/ 31 января 2011

У меня проблемы с получением библиотеки проверки формы для отправки ошибок формы обратно в мою форму.

У меня есть контроллер для загрузки изображений, который называется 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_front.php, сохранив эти ошибки. Могу ли я как-нибудь вызвать мой контроллер home.php из контроллера uploadimage.php, чтобы сделать это? Я запутался, пытаясь объяснить это! Если это совершенно неясно, дайте мне знать, и я постараюсь уточнить.

Ответы [ 3 ]

2 голосов
/ 31 января 2011

Per Документация , вы должны просто перезагрузить файл представления при ошибке.

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

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

0 голосов
/ 31 января 2011

Вы можете использовать функцию 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
0 голосов
/ 31 января 2011

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

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

ищите if (isset ($ error_image))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...