2017-01-24 4 views
1

Так что я проверяю форму с помощью воспламенителя кода, что значительно упрощает мой код, но я столкнулся с новой проблемой. Моя форма сначала загружается как всплывающее окно. Но когда контроллер возвращает ответ после проверки, форма открывается как отдельная веб-страница, а не просто загружается внутри предыдущего представления.Ошибка проверки формы идентификатора 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); 
    } 
} 

form-> (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')) .'&nbsp;&nbsp;'; 
    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, но хотел бы изучить метод проверки воспламенения кода. Благодарю.

ответ

1

Если у вас есть проблема в Validation относительно CodeIgniter, то, пожалуйста, прочитайте CodeIgniter Official Form Validation Guide

Я рекомендую Сохранение Наборы правил проверки в конфигурационный файл

Если вы до сих пор путают чтение/обзор кусок ниже кода, это поможет вам. Этот код используется в файле конфигурации.

<?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' 
//  ) 
//  

    ) 
); 

?> 
+0

Благодарим за предложение – jstandshigh