Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
使用jquery、ajax和php ajax()检查本地服务器上的用户名未连接_Php_Jquery_Mysql_Ajax - Fatal编程技术网

使用jquery、ajax和php ajax()检查本地服务器上的用户名未连接

使用jquery、ajax和php ajax()检查本地服务器上的用户名未连接,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,因此,我在本地系统上有一个mysql数据库,并使用PHP连接到该数据库。 我知道服务器(Apache)并没有什么问题,因为我已经在另一个只使用php的调用中使用了它 我认为问题在于“ajax()请求” 我刚刚开始使用ajax。 我按照一个教程实现了一种方法来检查数据库中是否已经异步存在用户名 在ajax()请求发出之前,所有代码都有效 我没有收到任何错误。我在屏幕上看到的都是以下代码的结果: $(“#可用性_状态”).html('检查可用性…'); //在span id=“可用性\u状态”中添加

因此,我在本地系统上有一个mysql数据库,并使用PHP连接到该数据库。 我知道服务器(Apache)并没有什么问题,因为我已经在另一个只使用php的调用中使用了它

我认为问题在于“ajax()请求”

我刚刚开始使用ajax。 我按照一个教程实现了一种方法来检查数据库中是否已经异步存在用户名

在ajax()请求发出之前,所有代码都有效

我没有收到任何错误。我在屏幕上看到的都是以下代码的结果:

$(“#可用性_状态”).html('检查可用性…'); //在span id=“可用性\u状态”中添加加载映像

我整天都在寻找解决办法,这让我发疯。 提前谢谢你

<!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" xml:lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Register</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
        </script>
        <script type="text/javascript">
            $(document).ready(function() {  //When the dom is ready
                alert("ready!");
                $("#username").change(function() { //if therezs a change in the username textbox
                    var username = $("#username").val();//Get the value in the username textbox
                    if(username.length > 3)
                    {
                        $("#availability_status").html('<img src="loader.gif" align="absmiddle">&nbsp;Checking availability...');
                        //Add a loading image in the span id="availability_status"

                        $.ajax({ 
                            type: "POST",
                            url: "http://localhost/ajax_check_username.php",
                            data: {username: username}, 
                            success: function(server_response){

                                    if(server_response == '0')//if ajax_check_username.php return value "0"
                                    {
                                        $("#availability_status").html('<img src="available.png" align="absmiddle"> <font color="Green"> Available </font>  ');
                                        //add this image to the span with id "#availability_status"
                                    }
                                    else  if(server_response == '1')//if it returns "1"
                                    {
                                        $("#availability_status").html('<img src="not_available.png" align="absmiddle"> <font color="red">Not Available </font>');
                                    }


                            }

                        });

                    }
                    else
                    {

                    $("#availability_status").html('<font color="#cc0000">Username too short</font>');
                    //if in case the username is less than or equal 3 characters only
                    }
                    return false;
                });
            });
    </script>
    </head>
    <body>
    <div id="content">
    <strong>Register</strong>
      <form action="http://localhost/register2a.php" method="get">
        <div class="style_form">
          <label for="username">Username :</label>
          <input type="text" name="username" id="username" class="form_element"/>
          <span id="availability_status"></span> </div>
        <div class="style_form">
          <label for="full_name">Full Name :</label>
          <input type="text" name="full_name" id="full_name" class="form_element"/>
        </div>
        <div class="style_form">
          <label for="email">Email  :</label>
          <input type="text" name="email" id="email" class="form_element"/>
        </div>
        <div class="style_form">
          <input name="submit" type="submit" value="submit" id="submit_btn" />
        </div>
      </form>
     </div>
    </body>
    </html>

登记
$(document).ready(函数(){//当dom就绪时
警报(“准备就绪!”);
$(“#username”).change(function(){//如果username文本框中有更改
var username=$(“#username”).val();//获取用户名文本框中的值
如果(username.length>3)
{
$(“#可用性_状态”).html(‘检查可用性…’);
//在span id=“可用性\u状态”中添加加载映像
$.ajax({
类型:“POST”,
url:“http://localhost/ajax_check_username.php",
数据:{username:username},
成功:功能(服务器响应){
if(server\u response=='0')//if ajax\u check\u username.php返回值“0”
{
$(“#可用性状态”).html('Available');
//将此映像添加到id为“#可用性_状态”的范围中
}
else if(server_response=='1')//如果返回“1”
{
$(“#可用性_状态”).html(‘不可用’);
}
}
});
}
其他的
{
$(“#可用性_状态”).html('用户名太短');
//如果用户名仅少于或等于3个字符
}
返回false;
});
});
注册
用户名:
全名:
电邮:
////这是php文件

<?php
$conn = mysqli_connect('localhost', 'root', 'sherly743759', 'login');
//Include the Database connection file
if(isset($_POST['username']))//If a username has been submitted
{
    //check username not taken
    $conn = mysqli_connect('localhost', 'root', 'sherly743759', 'login');

    $username = mysql_real_escape_string($username);
    $query = "SELECT username FROM member WHERE username = '$username';";

    $result = mysql_query($query);

if(mysql_num_rows($result) > 0)
{
echo '1'; //Not Available
}
else
{
echo '0';  // Username is available
}

}

?>

我总是喜欢在AJAX问题上使用GET请求,这意味着使用类型:“GET”执行jQuery AJAX,并使用PHP上的GET读取参数。因此,我可以通过在浏览器中这样运行PHP页面来轻松测试PHP页面本身


localhost/ajax\u check\u username.php?username=something

您没有在ajax调用中处理
错误
案例,只是
成功
-因此,如果ajax调用失败,将不会重置“检查可用性”状态

顺便说一句,您的PHP失败至少部分是因为您正在使用(但从未设置)
$username
。您还打开了两次数据库,但这可能是无害的

<?php
  if(isset($_POST['username']))//If a username has been submitted
  {
    //check username not taken
    $conn = mysqli_connect('localhost', 'root', 'sherly743759', 'login');

    $username = mysql_real_escape_string($_POST['username']);
    $query = "SELECT username FROM member WHERE username = '$username';";

    $result = mysql_query($query);

    if(mysql_num_rows($result) > 0)
    {
      echo '1'; //Not Available
    }
    else
    {
      echo '0';  // Username is available
    }
  }

PHP文件上的
,这样您就不会意外地回显额外的数据并破坏预期结果。

需要检查您的jquery版本。它使用的是旧版本1.3。。。 不符合

http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js

嗨,Paul。我不完全确定你在ajax调用中处理错误案例的意思。你能说得更清楚一点吗。正如我所说,我对ajax相当陌生。谢谢你知道你在ajax选项中定义的
success
函数吗?可以而且应该有一个
error
函数,它将被调用而不是
success
w当调用出现问题时。实际上,当脚本抛出错误时(它会),您的成功处理程序永远不会被调用。其他任何东西也不会被调用。没有人清理状态消息,没有人报告问题。这里有一个简单的示例:哦,我现在明白了。对不起!我当然会这么做。但这不可能是ajax调用不正确的原因吗?好的,我已经实现了错误函数的代码,如下所示lows:error:function(xhr,ajaxOptions,thownError){alert(xhr.status);alert(thrownError)}我得到抛出的错误:“0”(这对我来说毫无意义)这帮了大忙!我甚至没有想到要这么做!ThanksI使用了这种方法来确保php文件的运行方式是正确的……我仍然无法在ajax代码中运行它。在尝试连接到php文件时,我一直收到xhr.status错误0。尝试在ajax调用中使用php url的相对路径