我有一个简单的表单,使用以下验证规则添加到我的数据库。 “form”在autoload.php中。
每当任何验证规则被破坏时,页面都不会显示错误输出,如果没有任何错误输出,表单将按预期运行。
这是我的控制器功能
public function add()
{
$this->load->library('form_validation');
$this->load->library('layout');
// field name, error message, validation rules
$this->form_validation->set_rules('type', 'Type', 'required|xss_clean');
$this->form_validation->set_rules('title_type', 'Title type', 'required|xss_clean');
$this->form_validation->set_rules('first_name', 'First name', 'trim|required|min_length[1]|max_length[150]|xss_clean');
$this->form_validation->set_rules('surname', 'Surname', 'trim|required|min_length[1]|max_length[150]|xss_clean');
$this->form_validation->set_rules('job_title', 'Job title', 'trim|min_length[5]|max_length[300]required|xss_clean');
$this->form_validation->set_rules('office_number', 'Office number', 'trim|min_length[2]|max_length[11]|xss_clean');
$this->form_validation->set_rules('telephone', 'Telephone', 'trim|numeric|xss_clean');
$this->form_validation->set_rules('email', 'Email', 'trim|valid_email|xss_clean');
$this->form_validation->set_rules('website', 'Website', 'trim|prep_url|xss_clean');
$this->form_validation->set_rules('background', 'Background', 'trim|xss_clean');
$data = array(
'title' => 'Add staff member'
);
if ($this->form_validation->run() == FALSE) { //Was errors
$this->session->set_flashdata('message','You missed some details, please try again.');
$this->layout->load('default', 'add_person', $data);
} else {
$this->people_model->add_person();
$this->layout->load('default', 'added_person', $data);
}
} //add
在我的表单中我有
<?php echo validation_errors('<p class="msg msg-error">') ?>
任何人都可以看到我做错了什么,我已经尝试了我能想到的一切。
validation_errors()的var_dump给出了
string '' (length=0)
编辑:奇怪的是,如果我交换这两行,我得到:
$this->load->library('form_validation');
$this->load->library('layout'); //lib code http://pastebin.com/K1rBV512
Message: Undefined property: People::$form_validation
Filename: controllers/people.php
Line Number: 27
答案 0 :(得分:1)
您需要将$data
数组传递给模型。所有输入都需要从POST
页面获取VIEW
。您没有显示任何特定错误,因此很难诊断您的问题。
确保POST
中的MODEL
所有输入都是`'first_name' => $this->input->post('first_name'),`
:
view
在<?php echo validation_errors('<p class="msg msg-error">') ?>
:
view
在<p class="msg msg-error"><?php echo validation_errors(); ?></p>
中将其更改为:
{{1}}
答案 1 :(得分:0)
该错误似乎与会话无关,但我没有看到您加载会话库。
答案 2 :(得分:0)
我认为问题出在您的视野中,而不是在控制器中。 问题似乎是你的$ _POST是空的,没有什么可以验证的。
这似乎没有答案,希望它能帮助别人。
如果发生这种情况,请在$ _POST上尝试var_dump。如果为空,请确保您有
然后在内部确保您输入&#34; name&#34;属性,而不是&#34; id&#34;
希望这有助于任何人