[英]CodeIgniter Form Validation Issue
所以我正在使用代碼點火器驗證表單,這大大簡化了我的代碼,但是我面臨一個新問題。 我的表單首先作為視圖中的彈出窗口加載。 但是當控制器在驗證后返回響應時,表單會作為一個單獨的網頁打開,而不是僅僅加載到之前的視圖中。
main_view.php
<script>
function div_show(type, classID) {
if(type=='adduser')
{
document.getElementById('AddUser_popup').style.display = "block";
$("#AddUser_popup").load("add_user");
}
}
</script>
<body>
<button id="popupNewTerm" onClick="div_show('adduser', null)">Add user</button>
<div class="AddUser_popup" id="AddUser_popup"> </div>
</body>
控制器:
public function add_user()
{
$data = array();
$this->load->helper('form');
$this->load->helper('url');
$this->load->library('form_validation');
$this->load->model('user_m');
$this->form_validation->set_rules('username','Username', 'required|trim');
$this->form_validation->set_rules('emp_email','E-mail', 'required|trim|valid-email|xss_clean');
if($this->form_validation->run()==FALSE)
{
$this->load->view('includes/forms/add_user', $data);
}
else {
$data['username']=$this->input->post('username');
$data['emp_email']=$this->input->post('emp_email');
$user=array(
'user_id'=> NULL,
'username'=> $data['username'],
'emp_email'=>$data['emp_email']
);
$this->user_m->insert_user($user);
$this->load->view('includes/forms/add_user', $data);
}
}
表單-> (add_user.php)
<div id="popupContact">
<?php
if(isset($username) && isset($emp_email))
{
echo validation_errors();
echo 'User added successfully!';
}
else {
echo validation_errors();
echo form_open('', 'id="form" name="form"');
echo '<p id="close" onclick ="div_hide()">X</p>';
echo '<h2>Add User</h2>';
echo '<hr>';
echo '<label for="username">Username: </label>'.form_input('username', set_value('username')) .' ';
echo '<label for="emp_email">Email: </label>'.form_input('emp_email', set_value('emp_email')) . '<br><br>';
echo form_submit('submit', 'Submit', 'id="submit"');
echo form_close();
}
?>
</div>
控制器驗證失敗后,如何在 main_view.php 中加載表單,驗證成功后,我希望表單在主頁內關閉。 我可以使用普通的 javascript 和 php 進行表單驗證,但想學習代碼點火器的驗證方法。 謝謝。
如果您在有關 Codeigniter 的驗證中遇到問題,請閱讀CodeIgniter 官方表單驗證指南
我建議將驗證規則集保存到配置文件
如果您仍然對閱讀/查看下面的代碼感到困惑,它將對您有所幫助。 此代碼用於配置文件。
<?php
$config = array(
'master/user' => array(
array(
'field' => 'empname',
'label' => 'Employee Name',
'rules' => 'required|trim|min_length[6]|xss_clean'
),
array(
'field' => 'cnt',
'label' => 'Contact Number',
'rules' => 'required'
),
array(
'field'=>'dob',
'label'=>'Date Of Birth',
'rules'=>'required'
),
array(
'field' => 'design',
'label' => 'Designation',
'rules' => 'required'
),
array(
'field'=>'pass',
'label'=>'Password',
'rules'=>'required'
),
array(
'field' => 'cpass',
'label' => 'Password Confirmation',
'rules' => 'required|trim|min_length[6]|matches[pass]|xss_clean'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'required'
),
// array(
// 'field' => 'prof',
// 'label' => 'Profile Image',
// 'rules' => 'required|callback_upload_image'
// )
),
'master/SAdmin' => array(
array(
'field' => 'empname',
'label' => 'Employee Name',
'rules' => 'required|trim|min_length[6]|xss_clean'
),
array(
'field' => 'cnt',
'label' => 'Contact Number',
'rules' => 'required'
),
array(
'field'=>'dob',
'label'=>'Date Of Birth',
'rules'=>'required'
),
array(
'field' => 'design',
'label' => 'Designation',
'rules' => 'required'
),
array(
'field'=>'pass',
'label'=>'Password',
'rules'=>'required'
),
array(
'field' => 'cpass',
'label' => 'Password Confirmation',
'rules' => 'required|trim|min_length[6]|matches[pass]|xss_clean'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'required'
)
),
'master/task' => array(
array(
'field' => 'jtitle',
'label' => 'Job Title',
'rules' => 'required|trim|xss_clean'
),
array(
'field' => 'jnature',
'label' => 'Job Type',
'rules' => 'required'
),
array(
'field'=>'assigne',
'label'=>'Assigned From',
'rules'=>'required'
),
array(
'field' => 'assignto',
'label' => 'Assign To',
'rules' => 'required'
),
array(
'field'=>'ddate',
'label'=>'Due Date',
'rules'=>'required'
),
array(
'field' => 'reminder',
'label' => 'Reminder',
'rules' => 'required|trim|max_length[1]|xss_clean'
),
// array(
// 'field'=>'image',
// 'label' => 'Image',
// 'rules' => 'required'
// )
//
)
);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.