Your Ad Here
Ajax

Bookmark and Share
Simple Example in AJAX

Get a text
<html>
<head>
<script>
function submitForm()
{
    var xhr;
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e)
    {
        try {
            xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch (e2)
        {
          try { xhr = new XMLHttpRequest();     }
          catch (e3) {  xhr = false;   }
        }
     }

    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState  == 4)
         {
         if(xhr.status  == 200)
         document.ajax.dyn="Received:"  + xhr.responseText;
         else
         document.ajax.dyn="Error code " + xhr.status;
         }
    };

   xhr.open(GET, "data.txt",  true);
   xhr.send(null);
}

</script>
</head>

<body>
<FORM method="POST" name="ajax" action="">
<INPUT type="BUTTON" value="Submit"  ONCLICK="submitForm()">

 <INPUT type="text" name="dyn"  value="">
</FORM>
</body>
</html>

Comments on the code:

new ActiveXObject(Microsoft.XMLHTTP)
   This constructor is for Internet Explorer.

new XMLHttpRequest()
   This constructor is for any other browser including Firefox.

http.onreadystatechange

  An anonymous function is assigned to the event indicator.

http.readyState == 4
   The 4 state means for the response is ready and sent by the server.

http.status == 200
   This status means ok, otherwise some error code is returned, 404 for example.

http.open( "POST", "data.xml", true);
   POST or GET
   URL of the script to execute.
   true for asynchronous (false for synchronous).

http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   This is for POST only.

http.send(document.getElementById("TYPEDTEXT").value);
   Send data to the server.
Data comes from the "TYPEDTEXT" variable filled throught the form by the user.


Get from XML

To get data from an XML file, we have just to replace this line:

document.ajax.dyn="Received:" + xhr.responseText; 

by this code:

        // Assign the XML file to a var
      var doc = xhr.responseXML;
       // Read the first element
      var element = doc.getElementsByTagName('root').item(0);  
       // Assign the content to the form
      document.ajax.dyn.value= element.firstChild.data;   
      

Write to body

In this demo, the text read is put into the body of the page, and not into a textfield.
The code below replaces the textfield form object and the second part replaces the assignment into the JavaScript function.

<div id="zone">
     ... some text to replace ...
 </div> 

var a = document.getElementById("zone");
  a.innerHTML = "Received:" + xhr.responseText;
  

Post a text

In this demo, a text is sent to the server and is written into a file. The call to the "open" method changes, the argument is POST, the url is the name of a file or script that receives the data sent, and that must process it. And the "send" method has now a value as argument that is a string of parameters.

xhr.open("POST", "ajax-post-text.php", true);
xhr.setRequestHeader("Content-Type",
    "application/x-www-form-urlencoded");
xhr.send(data);

The parameter of the send method is in the format of the HTML POST method. When several values are sent, they are separated by the ampersand symbol:

var data = "file=" + url + "&content=" + content;
The "file" parameter is the name of a file created to store the content. The filename must be checked by the server to prevent any other file to be modified.

Using an external file

It is simpler to include a JavaScript file. This line will be included into the head section of the HTML page:

<script src="ajax.js" type="text/javascript"></script>

And the function is called with this statement:

var xhr = createXHR();
Today's Deal