Firebug给出错误“Ajax未定义”

时间:2011-07-22 15:23:11

标签: php ajax html-form-post

我有这个HTML表单,它使用AJAX将数据传递给php文件。 (我这样做了所以我不必离开当前页面)。 Firebug给了我两个错误:

document.getElementById("name") is null
ajaxget is not defined

我今天才开始绝望地使用AJAX,所以我对它很新。 PHP文件是second.php,重要的是它接收变量,以便稍后可以创建另一个html使用的输出,但它不必回复:

        <html>
        <head>
        </head>

        <body>
        <script type="text/javascript">
         function ajaxRequest(){
         var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
         if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
          for (var i=0; i<activexmodes.length; i++){
           try{
            return new ActiveXObject(activexmodes[i])
           }
           catch(e){
            //suppress error
           }
          }
         }
         else if (window.XMLHttpRequest) // if Mozilla, Safari etc
          return new XMLHttpRequest()
         else
          return false
        }
          var mygetrequest=new ajaxRequest()
        mygetrequest.onreadystatechange=function(){
         if (mygetrequest.readyState==4){
          if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){
           document.getElementById("result").innerHTML=mygetrequest.responseText
          }
          else{
           alert("An error has occured making the request")
          }
         }
        }
        var namevalue=encodeURIComponent(document.getElementById("name").value)
        var agevalue=encodeURIComponent(document.getElementById("age").value)
        mygetrequest.open("GET", "second.php?name="+namevalue+"&age="+agevalue, true)
        mygetrequest.send(null)

        </script>

        <form method="get" action="">
        Your name: <input type="text" id="name" name="name" size="25" /> <br />
        Your age: <input type="text" id="age" name="age" size="25" /> <br />
        <input type="button" value="submit" onClick="ajaxget()" />
        </form>
         <div id="result"> </div>

        </body>

        </html>

2 个答案:

答案 0 :(得分:2)

  

document.getElementById(“name”)为空

您在任何功能之外都有var namevalue=encodeURIComponent(document.getElementById("name").value)。因此它在解析<script>元素时运行 - 这是在具有该ID的元素存在于DOM之前。

  

未定义ajaxget

您有onClick="ajaxget()",但您对ajaxget没有任何其他提及(例如function ajaxget() { …

答案 1 :(得分:0)

    <input type="button" value="submit" onClick="ajaxget()" />
                                                 ^^^^^^^^^--- where is this function?

您的代码中没有定义ajaxget()函数。