似乎有可能關於表單和表單驗證的問題。Codeigniter表單驗證將不會運行
我一直有一個問題讓我的表單驗證工作。我創建了一個註冊表單,向用戶詢問各種信息。然後我創建了一個表單,允許用戶編輯他的信息。表單驗證在註冊表單上完美工作,但我無法讓它在其他表單上運行驗證。
我的觀點
<h1>Edit user</h1>
<div id="body">
<p>Edit user information.</p>
<?php
echo form_open('user_admin/user_update');
echo validation_errors();
echo form_hidden('id', $results->id);
echo "<p><lable>Email:</lable>";
echo form_input('email', $results->email);
echo "</p>";
echo "<p><lable>Name:</lable>";
echo form_input('name', $results->name);
echo "</p>";
echo "<p><lable>Last name:</lable>";
echo form_input('lastname', $results->lastname);
echo "</p>";
echo "<p><lable>Home address:</lable>";
echo form_textarea('homeaddress', $results->homeaddress);
echo "</p>";
echo "<p><lable>Postal address:</lable>";
echo form_textarea('posteladdress', $results->posteladdress);
echo "</p>";
echo "<p><lable>Mobile number:</lable>";
echo form_input('mobile', $results->mobile);
echo "</p>";
echo "<p><lable>Home telephone:</lable>";
echo form_input('hometel', $results->hometel);
echo "</p>";
echo "<p><lable>ID number:</lable>";
echo form_input('idnum', $results->idnum);
echo "</p>";
echo "<p>";
echo form_submit('edit_submit', 'Update');
echo "</p>";
echo form_close();
?>
我控制器
public function user_update()
{
$this->load->library('form_validation');
$this->load->model('model_users');
$this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[user.email]');
$this->form_validation->set_rules('name', 'Name', 'required|trim');
$this->form_validation->set_rules('lastname', 'Last name', 'required|trim');
$this->form_validation->set_rules('homeaddress', 'Home address', 'required|trim');
$this->form_validation->set_rules('posteladdress', 'Postel address', 'required|trim');
$this->form_validation->set_rules('mobile', 'Mobile number', 'required|trim');
$this->form_validation->set_rules('hometel', 'Home telphone', 'required|trim');
$this->form_validation->set_rules('idnum', 'ID Number', 'required');
$this->form_validation->set_message('is_unique', 'This email address has already been registered. Please try again.');
if ($this->form_validation->run()==true)
{
$id = $this->input->post('id');
$this->model_users->update_info();
echo "The users details have been updated successfully";
redirect ('user_admin/user_main');
}
else
{
echo "The users details were not updated. Please contact the admistrator!";
}
}
隨着當前配置控制器我可以得到數據庫通過改變if語句爲FALSE更新。所以我現在將發佈信息傳遞給數據庫並進行更新。
請有人看看我的代碼告訴我我做錯了什麼。
謝謝。
當您處於編輯模式時,它不起作用?爲什麼你不使用JavaScript進行客戶端驗證? – Karthikeyani 2015-03-19 06:34:21
你可以去更新按鈕點擊其他嗎? – 2015-03-19 06:51:37
是的,它會運行到else語句並打印錯誤消息 – 2015-03-23 09:03:50