Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery ajax()函数赢得';无法加载PHP脚本_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript Jquery ajax()函数赢得';无法加载PHP脚本

Javascript Jquery ajax()函数赢得';无法加载PHP脚本,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我试图用PHP和MySQL创建一个简单的登录,并使用AJAX()jquery函数加载PHP脚本。 当脚本在我的数据库中找到用户时,我只想加载一个新的网页(例如java2s.com)。 问题是这个脚本根本不起作用。 这是带有Jquery的HTML: 编辑:这是固定的代码,感谢所有发表评论的人,遗憾的是,这仍然不起作用 <!DOCTYPE HTML> <html> <head> <title> Login </title> <scri

我试图用PHP和MySQL创建一个简单的登录,并使用AJAX()jquery函数加载PHP脚本。 当脚本在我的数据库中找到用户时,我只想加载一个新的网页(例如java2s.com)。 问题是这个脚本根本不起作用。 这是带有Jquery的HTML:

编辑:这是固定的代码,感谢所有发表评论的人,遗憾的是,这仍然不起作用

<!DOCTYPE HTML>
<html>
<head>
<title> Login </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script language="JavaScript">
function change()
{
document.location.href="http://www.java2s.com";
}

$(document).ready(
$("#loginForm").click(function() {
var jsonlogin=new Object();
jsonlogin.username=$('#username').val();
jsonlogin.password=$('#password').val();
var sendstr = JSON.stringify(jsonlogin);
$.ajax({
        type: 'POST',
        url: 'login.php',
        async: false,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        data: sendstr,
        success:function(response){
        if (response['result']=="login successful")
            {
            change();
            }
        }
    });

    })
  )
</script>
</head>
<body>
<h1> INSERT USERNAME AND PASSWORD</h1>
<input type="text" id="username" name="username"> USERNAME <br>
<input type="password" id="password" name="password"> PASSWORD <br>
<input type="submit" id="loginForm" class="button positive">
</body>
</html>

登录
函数更改()
{
document.location.href=”http://www.java2s.com";
}
$(文件)。准备好了吗(
$(“#loginForm”)。单击(函数(){
var jsonlogin=新对象();
jsonlogin.username=$('#username').val();
jsonlogin.password=$('#password').val();
var sendstr=JSON.stringify(jsonlogin);
$.ajax({
键入:“POST”,
url:'login.php',
async:false,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
数据:sendstr,
成功:功能(响应){
如果(响应['result']=“登录成功”)
{
改变();
}
}
});
})
)
插入用户名和密码
用户名
密码
PHP脚本非常简单:

<?php
$data = file_get_contents('php://input');
$result = json_decode($data);
$con=mysqli_connect("localhost","****","*****","*******");
$str="SELECT ID FROM users WHERE username='".$result->username."' AND password='".$result->password."';";
$exists = mysqli_query($con,$str);
if (mysqli_num_rows($exists) ==1)
{
    $arr = array('result'=>"login successful");
    $ris=json_encode($arr);
    echo $ris;
}
else
{
    $arr= array('result'=>"login error");
    $ris=json_encode($arr);
    echo $ris;
}
mysqli_close($con)
?>

可能是因为所有的php都被注释掉了

此外,在您的成功函数中,应该如下所示:

success: function(response){
    dosomethingwithrespones(response);
}

$.ajax中的数据表示您发送的内容。

为什么要使用函数ajaxJson()。。。尝试删除它,如果您真的想使用它,请像这样修改按钮代码并删除
$(“#loginForm”)。单击jquery中的(function(){}

  <input type="submit" id="loginForm" class="button positive" onclick="ajaxJson()">

并更改
,而不是
。此标识符不是标准标识符,此属性已被弃用(较新的构造已过时),改为使用类型

第一条路

 function ajaxJson()
 {
       //your code goes here without triggering **click** event.. 
 }

 <input type="submit" id="loginForm" class="button positive" onclick="ajaxJson()">
  $("#loginForm").click(function() 
  {
      //your code goes here...
  }

  <input type="submit" id="loginForm" class="button positive">
函数ajaxJson() { //您的代码在不触发**单击**事件的情况下进入此处。。 }
第二种方式

 function ajaxJson()
 {
       //your code goes here without triggering **click** event.. 
 }

 <input type="submit" id="loginForm" class="button positive" onclick="ajaxJson()">
  $("#loginForm").click(function() 
  {
      //your code goes here...
  }

  <input type="submit" id="loginForm" class="button positive">
$(“#loginForm”)。单击(函数()
{
//你的密码在这里。。。
}
将所有内容保留在$(文档)之外。准备好功能


希望它能帮助你

试试这样的东西

$("#loginForm").click(function() {
    var jsonlogin=new Object();
    jsonlogin.username=$('#username').val();
    jsonlogin.password=$('#password').val();
    $.ajax({
        type: 'POST',
        url: 'login.php',
        async: false,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        data: jsonlogin,
        success:function(response){
            if (response['result']=="login successful")
            {
                change();
            }
        }
    });
})
编辑的代码

您尚未正确实现DOM就绪方法

    $(document).ready(function(){
        // code goes here
    });

在login.php中尝试此查询

     $str="SELECT ID FROM users WHERE username='".$result->username."' AND password='".$result->password."' "; 
Jquery:

           $(document).ready(function(){
            $("#loginForm").click(function() {
                var jsonlogin=new Object();
                jsonlogin.username=$('#username').val();
                jsonlogin.password=$('#password').val();
                var sendstr = JSON.stringify(jsonlogin);
                $.ajax({
                        type: 'POST',
                        url: 'login.php',
                        async: false,                         
                        dataType: 'json',
                        data: sendstr,
                        success:function(response){
                        if (response.result=="login successful")
                            {
                             change();
                            }else{
                                alert(response.result);
                                return false;
                            }   
                        }
                    });

                 });
        });

您错过了ready函数的结尾{和}。请尝试下面的代码

<!DOCTYPE HTML>
<html>
<head>
<title> Login </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script language="JavaScript">
function change()
{
document.location.href="http://www.java2s.com";
}

$(document).ready(function () {
$("#loginForm").click(function() {
alert("hi");
var jsonlogin=new Object();
jsonlogin.username=$('#username').val();
jsonlogin.password=$('#password').val();
var sendstr = JSON.stringify(jsonlogin);
$.ajax({
        type: 'POST',
        url: 'login.php',
        async: false,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        data: sendstr,
        success:function(response){
        if (response['result']=="login successful")
            {
            change();
            }
        }
    });

    });
});
</script>
</head>
<body>
<h1> INSERT USERNAME AND PASSWORD</h1>
<input type="text" id="username" name="username"> USERNAME <br>
<input type="password" id="password" name="password"> PASSWORD <br>
<input type="button" id="loginForm" class="button positive">
</body>
</html>

登录
函数更改()
{
document.location.href=”http://www.java2s.com";
}
$(文档).ready(函数(){
$(“#loginForm”)。单击(函数(){
警报(“hi”);
var jsonlogin=新对象();
jsonlogin.username=$('#username').val();
jsonlogin.password=$('#password').val();
var sendstr=JSON.stringify(jsonlogin);
$.ajax({
键入:“POST”,
url:'login.php',
async:false,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
数据:sendstr,
成功:功能(响应){
如果(响应['result']=“登录成功”)
{
改变();
}
}
});
});
});
插入用户名和密码
用户名
密码

您的PHP代码都有注释…!并且可能没有调用AjaxJson()函数…!您从未调用过
AjaxJson()
?嗯,忽略注释,原始代码没有注释,这是因为一些调试试用XD好的,我将尝试编辑成功函数谢谢您的回答!:)我尝试了第一种方法,但仍然不起作用……脚本根本无法加载。您是否将代码保留在$(document).ready()函数之外?或者尝试,在htmlI尝试后保留javascript代码,但没有任何帮助:(您说的“将javascript代码保留在html之后”是什么意思顺便说一句,我想知道PHP脚本是否有问题,但这会非常奇怪,因为即使我只回显“login successful”字符串而不做任何其他操作,我也无法运行它…尝试更改bcz I think language=“javascript”是deprecatedOops…我没有注意到我使用了'data'作为响应变量XD谢谢!尽管如此,脚本仍然没有显示…谢谢你的回复:)它说嗨!XD它不做任何其他事情,但肯定比什么都不做要好!我添加了该警报以检查执行情况或输入Ajax调用函数的点。它现在工作了吗?