2015-12-22 209 views
0

表單驗證在代碼工中無法正常工作。我寫了下面給出的代碼。當我點擊提交按鈕時,表單會自動提交而沒有任何值。 (即不進行驗證)表單驗證在代碼工中無法正常工作

查看的代碼控制器

<?php 

class User extends CI_Controller 
{ 
    public function main() 
    { 
     $this -> load -> helper('html'); 
     $this -> load -> helper('form'); 
     $this -> load -> view('form');  
    } 

    public function validate(){ 
      $this -> load -> library("form_validation"); 
      $this -> load -> helper("html"); 
      $this -> load -> helper("form"); 
      $this -> form_validation -> set_rules('name','NAME','required'); 
      $this -> form_validation -> set_rules('username','USERNAME','required|min_length[3]|max_length[10]|alpha'); 
      $this -> form_validation -> set_rules('email','Email','required|valid_emails');   
      $this -> form_validation -> set_rules('password','Password','required|matches[cpassword]'); 
      $this -> form_validation -> set_rules('cpassword','Confirm-Password','required'); 
      $this -> form_validation -> set_rules('mobile','Mobile','required|exact_length[10]|integer');; 

     if($this -> form_validation ->run()==false) 
       { 
       $this -> load -> view('form'); 
       } 
       else 
       { 
       echo "form has been Submitted"; 
       } 
    } 
} 

?> 

 <html> 
    <head> 
    </head> 
    <body> 
    <?php 
    echo form_open_multipart("form_validate/validate"); 
     echo form_fieldset("Registration Form"); 
     echo "Name :".nbs(5).form_input('name','').form_error("name","<span style='color:red;'>","</span>").br(1); 
     echo "Username :".nbs(5).form_input('username','').form_error("username","<span style='color:red;'>","</span>").br(1); 
     echo "Email :".nbs(5).form_input('email','').form_error("email","<span style='color:red;'>","</span>").br(1); 
     echo "password :".nbs(5).form_input('password','').form_error("password","<span style='color:red;'>","</span>").br(1); 
     echo "Confirm-Password :".nbs(5).form_input('cpassword','').form_error("cpassword","<span style='color:red;'>","</span>").br(1); 
     echo "Mobile :".nbs(5).form_input('mobile','').form_error("mobile","<span style='color:red;'>","</span>").br(1);  
     echo form_submit('submit','Register').nbs(5).form_reset('reset','Cancel').br(1);  
     echo form_fieldset_close(); 
     echo form_close(); 
    ?> 
    </body> 
</html> 

代碼可以採取什麼錯我的代碼?

+0

你負荷幫手'form'及'html'兩次,使一次 –

回答

0

在控制器嘗試這種

class User extends CI_Controller 
{ 
public function __construct(){ 
    $this->load->helper('html'); 
    $this->load->helper('form'); 
    $this->load->library("form_validation"); 
} 
public function main() 
{   
    $this -> load -> view('form');  
} 
public function save(){  
     $this -> form_validation -> set_rules('name','NAME','required'); 
     $this -> form_validation -> set_rules('username','USERNAME','required|min_length[3]|max_length[10]|alpha'); 
     $this -> form_validation -> set_rules('email','Email','required|valid_emails');   
     $this -> form_validation -> set_rules('password','Password','required|matches[cpassword]'); 
     $this -> form_validation -> set_rules('cpassword','Confirm-Password','required'); 
     $this -> form_validation -> set_rules('mobile','Mobile','required|exact_length[10]|integer');; 

    if($this -> form_validation ->run()==false) 
    { 
     $this -> load -> view('form'); 
    } 
    else 
    { 
     echo "form has been Submitted"; 
    } 
    } 
} 

,並考慮改變這一

echo form_open_multipart("form_validate/validate"); 

echo form_open_multipart("form_validate/save"); 
+0

Form_validation是codigniter中的默認庫,所以我們沒有更改方法名稱。請給我另一個解決方案 – Sreekanth