2017-04-20 179 views
-1

我正在嘗試創建一個ajax請求。這裏是我的代碼:如何獲得使用javascript的PHP返回值?

function cek(){ 
     var username = $("#username").val(); 
     var password = $("#password").val(); 

     if (username == "" && password == "") { 
      alert("Username and password can't be empty!"); 
     }else { 
      $.ajax({ 
       url: "processLogin.php", 
       type: "POST", 
       data:{ 
        username: $("#username").val(), password: $("#password").val() 
       }, 
       success:function(e){ 
        alert("e"); 
       } 
      }); 
     } 
    } 

這裏是PHP代碼:

$username = $_POST['username']; 
$password = $_POST['password']; 

$sql = "SELECT * FROM user WHERE nama='$username' AND password='$password'"; 
$query = $db->query($sql)or die(mysqli_error($db)); 
$result = $query->fetch_assoc(); 

if ($query->num_rows == 0) { 
    echo "Username not found!"; 
}elseif ($password != $result['password']) { 
    echo "Password incorrect!"; 
}else{ 
    header('location:index.php'); 
} 

我希望我的程序,以顯示基於對if else結果的警報。但它沒有顯示任何警報。我在谷歌搜索,但我仍然無法使其工作。
字面上我是新使用ajax。我希望有一個人可以幫助我。謝謝。

+3

從'警報刪除引號( 「E」);' – andrew

+3

您的代碼很容易受到[** SQL注入攻擊**](https://en.wikipedia.org/wiki/SQL_injection)。你應該使用[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)或[** PDO **](https://secure.php.net/ manual/en/pdo.prepared-statements.php)準備帶有綁定參數的語句,如[**這篇文章**]所述(https://stackoverflow.com/questions/60174/how-can-i-prevent-sql步噴射功能於PHP)。 –

+0

@andrew它仍然不顯示提示 – kurniawan26

回答

-1

一個u需要做的事情是取消對警報alert("e");

引號是alert(e);

,那麼你需要返回防止提交/使用防止默認加載頁面的形式,也返回如果用戶名/密碼爲空,表單將不會繼續提交,則爲false。

<script type="text/javascript"> 
     function cek(event){ 
       event.preventDefault(); 
       var username = $("#username").val(); 
       var password = $("#password").val(); 
      if (username == "" && password == "") { 
       alert("Username and password can't be empty!"); 
       return false; 
      }else { 

        $.ajax({ 
        url: "processLogin.php", 
        type: "POST", 
        data:{ 
         username: $("#username").val(), password: $("#password").val() 
        }, 
        success:function(e){ 
         alert(e); 
        } 
       }); 


      } 
     } 
    </script> 



    <form method="POST"> 
     <input type="text" name="username" id="username"> 
     <input type="password" name="password" id="password"> 
     <button type="submit" class="button" id="login" onclick="cek(event)">Login</button> 
    </form> 
+0

謝謝你隊友。有用。我想我還是在'else'聲明中犯了一個錯誤。它顯示了一個警告的全部內容的標題('location:index.php');' – kurniawan26

+0

不,不要使用php重定向,在前端使用jquery/js重定向...重定向與PHP將重定向ajax請求 –

+0

好吧,所以我需要刪除'else',對吧? – kurniawan26