2017-04-20 177 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