Firebug выдает ошибку "Ajax не определен" - PullRequest
0 голосов
/ 22 июля 2011

У меня есть эта 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 ]

2 голосов
/ 22 июля 2011

document.getElementById ("имя") равно нулю

У вас есть var namevalue=encodeURIComponent(document.getElementById("name").value) вне какой-либо функции. Таким образом, он запускается, когда элемент <script> анализируется, то есть до того, как элемент с таким идентификатором существует в DOM.

ajaxget не определен

У вас есть onClick="ajaxget()", но нигде нет других упоминаний о ajaxget (например, function ajaxget() { …

0 голосов
/ 22 июля 2011
    <input type="button" value="submit" onClick="ajaxget()" />
                                                 ^^^^^^^^^--- where is this function?

В вашем коде не определена функция ajaxget().

...