2012-04-29 3 views
0

У меня есть сценарий для загрузки изображения, и я использую его с проверкой формы. Таким образом, это код:CodeIgniter - установка проверки формы false

$this->form_validation->set_rules('name','Name','required|max_length[30]|xss_clean'); 
$this->form_validation->set_rules('desc','Description','required|xss_clean'); 

if ($this->form_validation->run() == TRUE) 
{ 
    $config = array(
     'allowed_types' => 'jpg|jpeg|png|gif', 
     'upload_path' => path/to/folder, 
     'max_size' => 3000, 
     'max_height' => 1024, 
     'max_width' => 1024, 
     'remove_spaces' => TRUE 
    ); 
    $this->load->library('upload', $config); 

    if ($this->upload->do_upload()) 
    { 
     //code for insert this data into database 
    } 
    else 
    { 
     //code for FALSE the form validation and error message with flashdata 
    } 

Теперь я хотел бы получить ложную форму, если есть некоторая ошибка при загрузке изображения. Я хочу сделать это как ошибку некоторого поля (если оно пустое), чтобы вернуть данные post-переменных (для содержимого поля).

Каков наилучший способ сделать это?

ответ

0

Состояние Состояние $this->form_validation->run() и $this->upload->do_upload() должно быть аналогичным.

Форма проверки:

$data['error_message'] = validation_errors(); 
$this->load->view('form', $data); 

загрузить файл:

$data['error_message'] = $this->upload->display_errors(); 
$this->load->view('form', $data); 

'формы' вид является один изначально загружен. У этого может быть div такого типа:

<div class="error_message"> 
    <?php if ($error_message) { 
     echo $error_message; 
    } ?> 
</div> 
+0

Я знаю это, но я не прошу об этом. Я ищу решение, которое будет выполнять только ложное выполнение проверки формы, если что-то не так хорошо с загрузкой файла. Пример: 'if ($ uploaderror == TRUE) { return false; // проверка фальшивой формы и получение всех значений полей назад } ' – user1257255

+0

Загрузка формы снова, как я уже упоминал в ответе, должен сделать именно это. Если вы хотите повторно заполнить поля, просто используйте функцию 'set_value' в каждом из полей. Условие 'else'' if ($ this-> upload-> do_upload()) 'служит в точности как' if ($ uploaderror == TRUE) ' –

+0

Ваш ответ правильный, и проблема была на моей стороне. Я использую малое значение set_value, и я не думаю об этом. Еще раз спасибо. – user1257255

Смежные вопросы