2017-02-10 62 views
0

我只是想学习一些PHP framework.ans开始与codeigniter.so你们可以明白,我是全新的codeigniter.i只是当我的用户名和密码字段为空时显示错误消息。如果不是然后提交表单。我希望用户和服务器端验证。问题是,js没有显示错误信息,也没有提交。 这里我看来代码 - >javascript不与codeigniter一起使用?

<body> 
    <center> 
     <h2>LOGIN</h2> 
     <form method="post" name="loginForm"> 
      <table cellpadding="4" cellspacing="4"> 
       <tr> 
        <td>USERNAME</td> 
        <td><input type="text" name="username" id="iusername" /></td> 
       </tr> 
       <tr> 
        <td>PASSWORD</td> 
        <td><input type="password" name="password" id="ipassword" /></td> 
       </tr> 
       <tr> 
        <td>&nbsp;</td> 
        <td><input onclick="checkInputFields()" type="button" value="Login" name="submit" /></td> 
       </tr> 
      </table> 
     </form> 
     <br /> 

     <!-- Label to display error message --> 
     <?php 
     if(!empty($errorMessage)){?> 
      <label name="errorMessage" id="ierrorMessage"><?php echo $errorMessage;?></label> 
     <?php 
     } 
     ?> 

    </center> 
</body> 

形式submiiting控制器页面,从那里观看。 我的js代码 - >

<script type="text/javascript"> 
     function checkInputFields(){ 
      if(document.getElementById('iusername').value == "" || document.getElementById('ipassword').value == ""){ 
       document.getElementById('ierrorMessage').innerHTML('You cant left username and password field empty.'); 
      } 
      else{ 
       //document.forms[0].submit(); 
       document.loginForm.submit(); 
      } 
     } 
    </script> 

和我的控制器功能 - >

public function index(){ 
    if($this->input->post('submit')){ 
     $uName=$this->input->post('username'); 
     $uPass=$this->input->post('password'); 

     if($uName == "" || $uPass == ""){ 
      $message['errorMessage']='You cant left username and password field empty.'; 
      $this->load->view('login',$message); 
     }else{ 
      if($this->varifyuser->checkuser($uName,$uPass)){ 

      $this->session->set_userdata('loggedin', true); 

      redirect(base_url()."home", 'refresh'); 

      }else{ 
       $message['errorMessage']='Invalid username or password'; 
       $this->load->view('login',$message); 
      } 
     } 
    } 
    else 
    { 
     $this->load->view('login'); 
    } 
} 

控制器功能absoletely工作fine.i检查,但JS是不工作的,为什么?我。也希望检查如何检查验证两个服务器端和客户端,在我的代码如果js如果关闭[如果我的工作]从不会submit.and php验证将无法工作。我也想知道我的编码架构有什么问题.experience brothes- >请帮助我。

+0

你可以很容易地检查这个空白输入与codeigniter验证,为什么你不使用? – nima

回答

0

<label name="errorMessage" id="ierrorMessage"><?php echo $errorMessage;?></label> 

,如果您有没有错误加载页面,则不会创建标签:

document.getElementById('ierrorMessage') /*is null*/ 
+0

哦!imay是我可以UNDESTAND.but为什么表单没有提交。 –

+0

尝试更改输入按钮的属性“名称”。 document.loginForm.submit()不适用于此输入名称。 – Julian

0

使用jquery.Try这样的..

$("#login").on('click',function(){ 
 
username = $("#iusername").val(); 
 
password = $("#ipassword").val(); 
 
if(username=='' || password == ''){ 
 
console.log("You cant left username and password field empty."); 
 
alert("You cant left username and password field empty."); 
 
} 
 

 
else{ 
 
$("#loginForm").submit(); 
 
} 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<center> 
 
     <h2>LOGIN</h2> 
 
     <form method="post" name="loginForm"> 
 
      <table cellpadding="4" cellspacing="4"> 
 
       <tr> 
 
        <td>USERNAME</td> 
 
        <td><input type="text" name="username" id="iusername" /></td> 
 
       </tr> 
 
       <tr> 
 
        <td>PASSWORD</td> 
 
        <td><input type="password" name="password" id="ipassword" /></td> 
 
       </tr> 
 
       <tr> 
 
        <td>&nbsp;</td> 
 
        <td><input type="submit" id="login" name="submit" /></td> 
 
       </tr> 
 
      </table> 
 
     </form> 
 
     <br /> 
 
     </center>

相关问题