Php ajax没有响应

Php ajax没有响应,php,ajax,Php,Ajax,我正在设计一个web应用程序。在添加ajax之前,它工作得很好。现在我想添加ajax,但并没有发生任何事情,因为第一页正在一次又一次地加载。请告诉我ajax没有响应的原因(没有错误消息,没有新页面加载)。我的代码如下。 h、 php是一个简单的问候文件 first.php: <html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/D

我正在设计一个web应用程序。在添加ajax之前,它工作得很好。现在我想添加ajax,但并没有发生任何事情,因为第一页正在一次又一次地加载。请告诉我ajax没有响应的原因(没有错误消息,没有新页面加载)。我的代码如下。 h、 php是一个简单的问候文件

first.php:

<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
 <head>
      <title>Online library </title>
      <link rel="stylesheet" type="text/css" href="CSS/style.css" />
<form method="post">
<div class="result"></div>
UserName:<input type="text" name="name" id="username"><br><br>
Password:<input type="password" name="password" id="password"><br><br>
<button id="loginn" type="submit" name="button" <strong>login</strong> </button>
</form>
<script type="text/javascript" src=""jquery-3.2.0.js""></script>
<script type="text/javascript">
$(document).ready(function(){

     $("#loginn").submit(function(e){   
         var  username=$("#username").val();
         var  password=$("#password").val();
         var result=$('.result').val();
         var dataString = 'username='+username+'&password='+password;
          $.ajax({
           type: "POST",
           url: "log.php",
            data: dataString,
           success: function(responseText){    
            if(responseText==0)    {

            result.html('<span class="error">incorrect username</span>');
            }
        else if(responseText==1)
            {
              window.location="h.php";
           }
        else{
              alert('error in query');
             }
           }
          });

        e.preventDefault();
    });
});

</script>
</body>
</html>

网上图书馆
用户名:

密码:

user.php:

<?php

class users
{
public function constructs()
{
$con=mysqli_connect("localhost", "root", "") or die (mysqli_error());
mysqli_select_db($con,'online') or die(mysqli_error($con));
return $con;
}

 function login($username, $password) {
$con=$this->constructs();
$rs = mysqli_query($con, "SELECT username, password FROM member WHERE username='$username' AND password='$password'");
if(mysqli_num_rows($rs)>0)
{
echo 1;
}
else {
echo 0;
}
}
?>

您将代码绑定到jQuery中的document.ready函数,该函数在文档准备好呈现时立即运行代码,但我认为这只是问题的一部分。还可以尝试在代码中的不同位置添加一些console.log行,以检查文档引用是否正常工作

粘贴的代码中有一些语法错误,尤其是user.php文件(如果它确实是直接复制/粘贴的)。即使这些文件可能不会打印任何结果,也请尝试在浏览器中加载每个文件,以查看是否存在语法错误

您的html在first.php中的一些地方格式错误。检查doctype的位置,为分区添加适当的结束标记,检查表单本身的格式(特别是登录按钮本身)


这实际上是你代码的一部分吗

<script type="text/javascript" src=""jquery-3.2.0.js""></script>

如果是这样的话,应该是这样的

<script type="text/javascript" src="jquery-3.2.0.js"></script>


如果还有其他问题,请告诉我。

您的代码中有很多错误,更不用说注释中所说的非常不安全了。以下是您缺少的一些内容:

  • users.php中末尾的花括号
  • Jquery未正确包含在您拥有的索引文件中,额外的
    “”
  • 您正在侦听按钮而不是窗体上的提交事件,请将其更改为单击事件
  • 提交事件中的results var需要
    val()
    ,因此,在最后您将看不到来自查询的结果
如果数据库设置正确,其余代码应该可以工作

以下是工作代码:

index.php

 $("#loginn").click(function(e){   
     var  username=$("#username").val();
     var  password=$("#password").val();
     var result=$('.result');
     var dataString = 'username='+username+'&password='+password;
      $.ajax({
       type: "POST",
       url: "log.php",
        data: dataString,
       success: function(responseText){   
        console.log(responseText); 
        if(responseText==0)    {

        $(result).html('<span class="error">incorrect username</span>');
        }
       else if(responseText==1)
        {
          window.location="h.php";
       }
        else{
          alert('error in query');
         }
       },
       fail: function(err) {
           console.log(err); 

       }
      });

    e.preventDefault();
});
});
$(“#loginn”)。单击(函数(e){
var username=$(“#username”).val();
var password=$(“#password”).val();
var result=$('.result');
var dataString='username='+username+'&password='+password;
$.ajax({
类型:“POST”,
url:“log.php”,
数据:dataString,
成功:函数(responseText){
console.log(responseText);
if(responseText==0){
$(result.html('error username');
}
else if(responseText==1)
{
window.location=“h.php”;
}
否则{
警报(“查询错误”);
}
},
失败:功能(错误){
控制台日志(err);
}
});
e、 预防默认值();
});
});
log.php-相同


user.php-结尾缺少花括号

执行失败在哪里?您对SQL注入开放,需要散列您的密码。
函数构造()
您确定您不是指
函数构造()
这是一个语法错误,我可能会添加一个“离题”。查看开发人员控制台,并使用php的错误报告。@chris85 project要求它应该对攻击开放。执行失败意味着单击“登录”按钮时什么也没有发生。@Fred ii-是的,我确信它的结构和此语法错误在这里发布的代码中。很抱歉,没有语法错误,因为在ajax之前,log和first都工作得很好。你提到的错误在这里的发布代码中。很抱歉。它要求它应该是开放的攻击。尝试了你的代码,但仍然不起作用。原始代码中没有语法错误。我的浏览器有问题吗?我在xampp上使用chrome。在发布之前,我已经尝试过这段代码。我唯一想到的是,您的数据库连接没有正确建立。这对我来说仍然不起作用。我尝试过不使用ajax,我的数据库工作正常。您认为我的数据库连接有什么问题?您可能输入了连接所需的错误信息。这意味着您在运行代码时甚至可能没有连接到数据库。
 $("#loginn").click(function(e){   
     var  username=$("#username").val();
     var  password=$("#password").val();
     var result=$('.result');
     var dataString = 'username='+username+'&password='+password;
      $.ajax({
       type: "POST",
       url: "log.php",
        data: dataString,
       success: function(responseText){   
        console.log(responseText); 
        if(responseText==0)    {

        $(result).html('<span class="error">incorrect username</span>');
        }
       else if(responseText==1)
        {
          window.location="h.php";
       }
        else{
          alert('error in query');
         }
       },
       fail: function(err) {
           console.log(err); 

       }
      });

    e.preventDefault();
});
});