2016-10-18 87 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」