[AJAX] First Time - Tutorial

Online-Skater

Erfahrenes Mitglied
Hi Leutz, ich habe mich nun in die Welt von Ajax begeben und möchte ein bischen üben. Nach diesem Tutorial habe ich mich gehalten und es passiert bei mir nichts mit diesem Quelltext, nachdem ich auf den Button drücke. JacaScript ist im Browser aktiviert und "NoScript" erlaubt alle Seiten auf localhost. Woran mag das liegen ? Ich erwarte den Inhalt meiner Test.txt Datei in der Box. Nachfolgend der Code:

Javascript:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title>Meine ersten Ajax Erfahrungen</title>
  <script type="text/javascript">
   <!--   
    function doIt()
    {   
      // erstellen des Requests
      var req = NULL;   
      try
      {
        req = new XMLHttpRequest();
      }
      catch(ms)
      {
        try
        {
          req = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(nonms)
        { 
          try
          {
            req = new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch(failed)
          {
            req = NULL;
          }
        }
      }
      
      if (req = NULL)
        alert("Error creating request object!");
        
      //anfrage erstellen (GET, url ist localhost, request ist asynchron)
      req.open("GET", 'http://localhost/WEB/Ajax/Test.txt', TRUE);
      //Beim abschliessen des request wird diese Funktion ausgeführt
      req.onreadystatechange =   req.onreadystatechange = function(){            
      switch(req.readyState) {
        case 4:
        if(req.status!=200) {
            alert("Fehler:"+req.status); 
        }else{    
            alert(req.responseText);
            //schreibe die antwort in den div container mit der id content 
            document.getElementById('eins').innerHTML = '<strong>'+
                                                    req.responseText
                                                    +'</strong>';
        }
        break;

        default:
            return false;
        break;     
    }
  };
      req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      req.send(null);
    }  
   //-->
  </script>
  </head>
  <body>
    <div id="eins" style="width: 80%; height: 80%; border: dashed 1px;">
      <input type="button" onclick="doIt();" value="Mach was!">
    </div>
  </body>
</html>

Mit freundlichen Grüßen :)
 
Zuletzt bearbeitet von einem Moderator:
Moin,

NULL,TRUE und FALSE gehören in JS allesamt kleingeschrieben.

und das hier:
Code:
if (req = NULL)
...das soll doch sicher ein Vergleich werden, dann muss es so lauten:
Code:
if (req == null)
 
Ohje wie unaufmerksam von mir. Dankeschön. Es funktioniert. Ein paar Frage noch zum Verständnis:
Es wird der Text eingeblendet, aber der Button verschwindet, warum ?
Der Quelltext ändert sich ja nicht (kein Refresh) da JavaScript Clientseitig funktioniert.
Gibt es eine Möglichkeit solchen Code zu debuggen bzw. kompilieren, da es ja nicht immer einfach ist alles gleich richtig einzutippen und dann sich dann auf Fehlersuche zu begeben ;-)

mfg
 
Was das Debuggen betrifft, jo, das gibts natürlich.

Für Mozilla->Firebug(Konsole hat mir ein "NULL is not defined" in Zeile 12 gemeldet)
Der IE hat auch einen Debugger, den kannst du unter Internetoptionen->Erweitert aktivieren.

Eigentlich hat jeder Browser ein Werkzeug parat, welches zumindest JS-Fehler ausgibt.

Zu dem Button: du änderst das innerHTML des Elternelementes des Buttons
Code:
document.getElementById('eins').innerHTML
...dadurch wird der Button entfernt. Wenn du ihn woanders...ausserhalb des div#eins platzierst, bleibt er da.
 

Neue Beiträge

Zurück