ajax没有回应

时间:2017-03-26 22:48:52

标签: 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/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>

log.php:

<?php
include 'user.php';
$name=$_POST["username"]; 
$password=$_POST["password"];
$con=new users();
$con->login($name,$password);
?>

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;
}
}
?>

2 个答案:

答案 0 :(得分:0)

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

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

你的first.php中的几个地方的html格式错误。检查您的doctype的位置,为&lt; head&gt;添加正确的结束标记。部分,检查表单本身的格式(特别是登录按钮本身)

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

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

如果是的话应该是

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

让我知道是否还有其他事情

答案 1 :(得分:0)

您的代码中有很多错误,更不用说它的评论已经说明非常不安全了。以下是您缺少的一些内容:

  • users.php
  • 末尾的卷曲括号
  • Jquery未正确包含在您拥有的索引文件中且额外" "
  • 您正在侦听按钮而不是表单上的提交事件,将其更改为单击事件
  • 您在提交事件中的结果var dosent需要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();
});
});

log.php - 相同的

user.php - 最后缺少大括号