AJAX - PHP - 内容未加载

时间:2014-07-22 10:42:13

标签: javascript php html ajax

我是AJAX的新手。

我正在尝试将PHP文件中的一些内容加载到load.html中。我在文本框的onKeyUp事件上创建了这个函数。

但它始终显示“未完成”作为输出。 :(

请帮帮我

load.html文件

<!DOCTYPE html>
<html>
    <head>
        <script>
            function NickName(nick){
                var xmlhttp;
                if(window.XMLHttpRequest){
                    xmlhttp = new XMLHttpRequest();
                } else {
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                xmlhttp.onreadystatechange = function(){
                    if(xmlhttp.status==200 && xmlhttp.readyState ==4){
                        document.getElementById("divNick").innerHTML = xmlhttp.reponseText;
                    }
                }
                xmlhttp.open("GET","myphp.php?key="+nick,true);
                xmlhttp.send();
            }
        </script>
    </head>
    <body>
        <div id="divNick"></div>
        <input type="text" id="text_box" onKeyUp="NickName(this.value)">
    </body>
</html>

myphp.php文件

<?php

if(isset($_GET['key']))
{
    $key = $_GET['key'];

    $choice1 = "Shifar";
    $choice2 = "Nidal";

    if($key==$choice1)
    {
        echo "Shifz";
    }
    else if($key==$choice2)
    {
        echo "Steavz";
    }
    else
    {
        echo "No Match Found";
    }

}




?>

先谢谢。 Shifar Shifz

5 个答案:

答案 0 :(得分:2)

有拼写错误。你的函数名是NickName,你正在调用NicKName。 K是资本

更改document.getElementById("divNick").innerHTML = xmlhttp.reponseText;

document.getElementById("divNick").innerHTML = xmlhttp.responseText;

又是一个错字。 reponseText - &gt; responseText的

答案 1 :(得分:2)

因为你的dint指定了正确的函数名。

您定义了一个名为NickName的函数,并调用另一个名为NicKName

的函数

更新为评论

由于另一个错误造成xmlhttp.reponseText而不是xmlhttp.responseText

,因此未定义

答案 2 :(得分:0)

试试这样:

xmlhttp.open("GET","myphp.php?key="+nick,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send();

xmlhttp.onreadystatechange = function()
{
    if(xmlhttp.status==200 && xmlhttp.readyState ==4)
    {
        document.getElementById("divNick").innerHTML = xmlhttp.reponseText;
    }
}

我认为订单很重要且NickName不是NicKName

答案 3 :(得分:0)

我可以看到您的函数名称中存在拼写错误。当您调用该函数时,您使用了NicKName,但该函数实际上被定义为NickName。 (k)在你的主叫陈述中大写。

对你的其他建议,像你所做的那样编写Ajax是一种非常古老的方法。最重要的是,您将为许多浏览器编写大量代码......您应该处理所有浏览器。那么为什么不使用其他ajax方法呢?我建议你使用jQuery $ .ajax。它非常简单,可以处理所有跨浏览器兼容性问题。

例如。上面的代码行可以替换为....

$(&#39;#divNick&#39)的负载。(&#39;?myphp.php键=&#39 +缺口);

只需一行。另一个是你也可以使用$ .ajax,它可以让你按照自己的意愿同时发出POST和GET请求。

最重要的是你说你是Ajax的新手。如果是这样的话,为什么你还没有开始阅读关于jQuery ...除了通过节省你的时间和你完成时非常有益,你会看到有多少工作岗位需要jquery作为技能组合。

希望这会有所帮助。

答案 4 :(得分:0)

在你的ajax代码上拼写错误    而不是 - document.getElementById(&#34; divNick&#34;)。innerHTML = xmlhttp.responseText ; 您输入了 - document.getElementById(&#34; divNick&#34;)。innerHTML = xmlhttp.reponseText ;