如何使用javascript获取php返回值?

如何使用javascript获取php返回值?,javascript,php,ajax,Javascript,Php,Ajax,我正在尝试创建一个ajax请求。这是我的密码: function cek(){ var username = $("#username").val(); var password = $("#password").val(); if (username == "" && password == "") { alert("Username and password can't be empty!");

我正在尝试创建一个ajax请求。这是我的密码:

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
是个新手。我希望有人能帮助我。谢谢。

您需要做的一件事是删除alert
alert(“e”)上的引号

成为
警报(e)

然后,您需要使用prevent default返回prevent表单提交/加载页面,当用户名/密码为空时,还需要返回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>

功能cek(活动){
event.preventDefault();
var username=$(“#username”).val();
var password=$(“#password”).val();
如果(用户名=“”&密码=“”){
警报(“用户名和密码不能为空!”);
返回false;
}否则{
$.ajax({
url:“processLogin.php”,
类型:“POST”,
数据:{
用户名:$(“#用户名”).val(),密码:$(“#密码”).val()
},
成功:职能(e){
警报(e);
}
});
}
}
登录

删除
警报(“e”)中的引号您的代码易受攻击。您应该使用或准备带有绑定参数的语句,如中所述。@andrew它仍然不显示警报您是否使用
cek()调用过
cek
?@blackcat现在可以工作了,非常感谢你,伙计。:)谢谢你,伙计。它起作用了。我想我在
else
语句中仍然犯了错误。它显示一个包含
标题('location:index.php')全部内容的警报否不使用php进行重定向,在前端使用jquery/js进行重定向。。。使用php重定向将重定向ajax请求,无需删除
头('location:index.php')然后等待ajax上的响应,如果响应是您想要的,那么在Front中重定向。非常感谢您的帮助。现在我可以继续了。:)