2016-10-18 64 views
0

所以在通过Jquery验证表单之后,我想知道用户名和密码是否有效。如果他们是,它应该重定向到另一个页面,否则我想找到一种方式显示给用户。在这一点上,我真的很困惑。这里是jQuery代码:从PHP脚本获取数据

$(document).ready(function(e) { 
    $('.error').hide(); 
    $('#staffLogin').submit(function(e) { 
     e.preventDefault(); 
     $('.error').hide(); 
     uName = $('#staff_username').val(); 
     pWord = $('#staff_password').val(); 
     if(uName == ''){ 
      $('#u_error').fadeIn(); 
      $('#staff_username').focus(); 
      return false; 
     } 
     if(pWord == ''){ 
      $('#p_error').fadeIn(); 
      $('#staff_password').focus(); 
      return false; 
     } 
     $.ajax({ 
      type : 'POST', url : 'staff_access.php', data : 'uName='+uName+'&pWord='+pWord, 
      success: function(html){ 
       if(html == 'true'){ 
        window.location = 'staff_page.php'; 
       } 
       else{ 
        $('#val_error').fadeIn(); 
       } 
      } 
     })   
    }); 
}); 

PHP:

<?php 
        include('admin/config.php'); 
        $username = $_POST['uName']; 
        $password = $_POST['pWord']; 
        $conn = mysqli_connect(DB_DSN,DB_USERNAME,DB_PASSWORD,dbname); 
        if ($conn) { 
         $qry = "SELECT lastname, firstname, FROM staff_user WHERE username='".$username."' AND pass='".$password.""; 
         $res = mysqli_query($qry); 
         $num_row = mysqli_num_rows($res); 
         $row=mysql_fetch_assoc($res); 
         if ($num_row == 1) { 
          session_start(); 
          $_SESSION['login'] = true; 
          $_SESSION['lastname'] = $row['lastname']; 
          $_SESSION['firstname'] = $row['firstname']; 
          $_SESSION['username'] = $row['username']; 
          echo "true"; 
         } 
         else{ 
          echo "false"; 
         } 
        } 
        else{ 
         $conn_err = "Could not connect.".mysql_error(); 
        }      

       mysqli_close($conn); 
     ?> 

FORM:

<form name="staff_login" method="post" action="" id="staffLogin"> 
      <fieldset> 
      <legend>Staff Login</legend> 
      <span class="fa fa-user fa-5x"></span> 
      <br><br> 
      <input type="text" name="staff_username" id="staff_username" placeholder="Username"> 
      <br><span class="error" id="u_error">Username Required</span><br> 
      <input type="password" name="staff_password" id="staff_password" placeholder="Password"> 
      <br><span class="error" id="p_error">Password Required</span><br> 
      <span class="error" id="val_error">Incorrect Username and Password combination</span> 
      <input type="submit" name="staff_login" value="Login"> 
      </fieldset> 
     </form> 
+0

'显示it'显示__what__? –

+3

你面临的问题是什么? –

+0

向用户显示错误消息 – jaypee

回答

0

你的AJAX数据格式错误发送。 POST数据应该作为一个对象发送。

$.ajax({ 
     type : 'POST', 
     url : 'staff_access.php', 
     data : { 
        uName: uName, 
        pWord: pWord 
       }, 
     dataType: 'text', 
     success: function(html){ 
      if(html == 'true'){ 
       window.location = 'staff_page.php'; 
      } 
      else{ 
       $('#val_error').fadeIn(); 
      } 
     } 
    }); 

也避免使用像'html'这样的文本。这可能会导致不必要的错误。 使用更多相关的词,如 “成功:函数(响应)”

0

尝试定义你的Ajax配置一个dataTpe - 数据类型: “HTML”