如何在 codeigniter 中验证表单
how to validate form in 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>
所以我的问题是当用户没有填写整个表单并提交按钮时,它进入了我在我的控制器中创建的 "travel" 的功能(详细信息)并且由于错误而显示 0 个结果.我希望该用户在我的索引页面上保留所有详细信息,直到他正确填写表单并在我的索引页面上显示错误,如果他错过了我表单的任何字段。
这是我在控制器中的函数 "travel"(详细信息):
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);
}
您需要重定向到旧页面并在查看页面中打印错误
<?php echo form_error('departure'); ?>
(在控制器中的每个输入字段和下方的视图中打印此内容)
if ($this->form_validation->run() == FALSE) {
redirect('method name that loads form');
}
我有一个基于 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>
所以我的问题是当用户没有填写整个表单并提交按钮时,它进入了我在我的控制器中创建的 "travel" 的功能(详细信息)并且由于错误而显示 0 个结果.我希望该用户在我的索引页面上保留所有详细信息,直到他正确填写表单并在我的索引页面上显示错误,如果他错过了我表单的任何字段。
这是我在控制器中的函数 "travel"(详细信息):
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);
}
您需要重定向到旧页面并在查看页面中打印错误
<?php echo form_error('departure'); ?>
(在控制器中的每个输入字段和下方的视图中打印此内容)
if ($this->form_validation->run() == FALSE) {
redirect('method name that loads form');
}