私は新しい問題に直面していますが、私は多くのコードを単純化するコードイグナイタを使用してフォームを検証しています。最初のフォームは、ビュー内でポップアップとして読み込まれます。しかし、コントローラが検証後に応答を返すと、フォームは前のビューの中にロードするのではなく、別のWebページとして開きます。CodeIgniterフォームのバリデーションの問題
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)Iの後main_view.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>
コントローラからの検証が失敗し、検証が成功したら、メインページ内でフォームを閉じる必要があります。私は、通常のjavascriptとPHPを使用してフォームの検証を行うことができますが、検証のコードイグナイターメソッドを学びたいと思った。ありがとう。
ありがとうございます – jstandshigh