как проверить форму в codeigniter

У меня есть сайт, основанный на фреймворке codeigniter. У меня есть форма на моей странице индекса и некоторые цены на рейсы, которые проходят через мою базу данных.

вот моя форма:

<?php echo validation_errors(); ?>

<form action="<?php echo base_url() ?>detail/travel" method="post">

<input type="text" name="departure">
<input type="text" name="destination">
<input type="text" name="name">
<input type="text" name="cell">

</form>

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

Вот моя функция «путешествия», которую я имею в моем контроллере (подробно):

function search_travel(){
if($_POST){

$config = array(
array(
'field'=>'departure',
'label'=>'departure',
'rules'=>'trim|required|alpha'
),
array(
'field'=>'destination',
'label'=>'destination',
'rules'=>'trim|required|alpha'
),
array(
'field'=>'name',
'label'=>'name',
'rules'=>'trim|required|alpha'
),
array(
'field'=>'cell',
'label'=>'cell no',
'rules'=>'trim|required|regex_match[/^[0-13]+$/]'
)
);
$this->load->library('form_validation');
$this->load->helper(array('form', 'url'));
$this->form_validation->set_rules($config);
if($this->form_validation->run() == FALSE){
$data['errors']= validation_errors();
}
else{
$destination= $this->input->post('destination');
$this->email->send();
$data['var']= $this->Travel->search_travel($destination);
$this->load->view('details',$data)
}
}
}

и моя индексная функция:

function index(){
$data['fares']= $this->Travel->all_fares();
$this->load->view('index', $data);
}

0

Решение

вам нужно перенаправить на старую страницу и напечатать ошибку при просмотре страницы

<?php echo form_error('departure'); ?>

(распечатайте это для каждого поля ввода и ниже в контроллере)

if ($this->form_validation->run() == FALSE) {

redirect('method name that loads form');
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector