|
|
|
This is a simple usage example of Ajax that shows how to update a part of the HTML page without refreshing the page. This is a great GUI advantage which makes the application look more like a windows application rather then a web based client side application.
In a similar example I posted : http://www.weberdev.com/get_example-4413.html I showed how to do this with only one element in the page being updated. I was asked to show how this can be done with more than one element and this example shows how to use two. From here it's simple enough to go on to three and more.
The SELECT field triggers a call to UpdateDiv which does all of the work. UpdateDiv gets the parameter from the SELECT and passes it on so we can act upon it.
UpdateDiv Gets two parameters :
1. A URL for a Web Service that returns any kind of output based on the parameter we passed.
2. A name of a function that will be triggered when the data comes back. This function usually takes HTML output from the remote URL and populates the DIV we prepared with the HTML using innerHTML.
The data will be put in <DIV NAME="MyDiv" ID="MyDiv1"> and <DIV NAME="MyDiv" ID="MyDiv2"> that we can locate wherever we like.
In the previous example we only had the UpdateDiv function. Here we need two functions to do two different updates. In this example we have UpdateDiv1 and UpdateDiv2
The second function we need to duplicate is the GetResponse which now shows as GetResponse1 and GetResponse2.
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE></TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</HEAD>
<BODY onLoad="update();">
<SCRIPT LANGUAGE="JavaScript" type="text/JavaScript">
function XmlHttp( ){
this.CreateXmlHttpObject = CreateXmlHttpObject;
this.GetUrlContent = GetUrlContent;
this.GetResponseText = GetResponseText;
this.GetReadyState = GetReadyState;
this.HttpMethod = 'GET'; // default
this.objXmlHttp = this.CreateXmlHttpObject();
}
// Initialize XMLHttpObject
function CreateXmlHttpObject(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
var objXMLHttp = new XmlHttp();
function GetReadyState( ){
return this.objXmlHttp.readyState;
}
function GetResponseText( ){
return this.objXmlHttp.responseText;
}
// Function performs Get request to absolute url(strUrl)
// using XmlHttp object (asynchroni)
// Response returned into objResult element using innerHTML.
// When state of XmlHttp object is changed - objOnReadyStateChangeFunction called
function GetUrlContent( strUrl, objOnReadyStateChangeFunction ){
this.objXmlHttp.open(this.HttpMethod, strUrl, true);
this.objXmlHttp.setRequestHeader('Content-Type', 'text/xml; charset=UTF-8');
if(objOnReadyStateChangeFunction){
this.objXmlHttp.onreadystatechange=function(){
objOnReadyStateChangeFunction();
}
}
this.objXmlHttp.send(null)
}
//This function is called when we get the data back from the server.
function GetResponse1( ){
if (objXMLHttp.GetReadyState()==4) {
// save response in inner html of result object
var objMyDiv = document.getElementById( 'MyDiv1' );
objMyDiv.innerHTML = objXMLHttp.GetResponseText( );
}
}
//This function is called when we get the data back from the server.
function GetResponse2( ){
if (objXMLHttp.GetReadyState()==4) {
// save response in inner html of result object
var objMyDiv = document.getElementById( 'MyDiv2' );
objMyDiv.innerHTML = objXMLHttp.GetResponseText( );
}
}
function UpdateDiv1( FieldValue ){
if( FieldValue !='' ){
var objMyDiv = document.getElementById( 'MyDiv1' );
objMyDiv.innerHTML = 'Please wait, getting info from server for Div 1...';
objXMLHttp.GetUrlContent( 'http://www.weberdev.com/get_example-' + FieldValue + '.html' , GetResponse1 );
}
return;
}
function UpdateDiv2( FieldValue ){
if( FieldValue !='' ){
var objMyDiv = document.getElementById( 'MyDiv2' );
objMyDiv.innerHTML = 'Please wait, getting info from server for Div 2...';
objXMLHttp.GetUrlContent( 'http://www.weberdev.com/get_example-' + FieldValue + '.html' , GetResponse2 );
}
return;
}
</SCRIPT>
<FORM NAME="MyForm" ACTION="MyFile.html" METHOD="POST">
<SELECT NAME="Test1" onChange="UpdateDiv1(this.value);">
<OPTION VALUE="4509">4509</OPTION>
<OPTION VALUE="4506">4506</OPTION>
<OPTION VALUE="4505">4505</OPTION>
</SELECT>
<BR>
<SELECT NAME="Test2" onChange="UpdateDiv2(this.value);">
<OPTION VALUE="4500">4500</OPTION>
<OPTION VALUE="4501">4501</OPTION>
<OPTION VALUE="4502">4502</OPTION>
</SELECT>
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="Submit">
</FORM>
<DIV ID="MyDiv1" STYLE="top:10px;right:0px;position:relative;border-width:1px;border-color:#000000;border-style:solid;width:500px;height:600px;overflow:hidden;">DIV 1</DIV>
<BR><BR>
<DIV ID="MyDiv2" STYLE="top:-630px;right:-550px;position:relative;border-width:1px;border-color:#000000;border-style:solid;width:500px;height:600px;overflow:hidden;">DIV 2</DIV>
</BODY>
</HTML> | | |
|
| Ajax - Perform a simple server side request and update the current HTML page. Categories : AJAX, Java Script, Beginner Guides | | | Zephyr: AJAX Based Framework for PHP5 Developers Categories : PHP, AJAX, Frameworks, Java Script, Web Applications | | | Remote Scripting: send form POST data to a script and insert the results into a page without refreshing the page. Categories : PHP, AJAX, HTML and PHP, Java Script | | | Validating a URL with JavaScript RegExp Categories : Java Script, Data Validation, Beginner Guides | | | Easy alert box pop-up function Categories : PHP, Java Script, Beginner Guides | | | Show hide table rows to make dynamic forms Categories : Beginner Guides, Java Script, Form Processing, HTTP | | | Form Processing : with alert Highlight field name which is not filled by user Categories : Java Script, Form Processing, Data Validation, Beginner Guides, Web Design | | | Local Time clock and Server time usign PHP and JavaScript Categories : PHP, Java Script, Date Time, Beginner Guides | | | Activate an Ajax.Autocompleter with an onLoad Command Categories : Java Script, AJAX | | | Conditional Check - a script that allows a user to submit a form only if the user check a checkbox. Categories : HTML, Java Script, Form Processing, Beginner Guides | | | Get your browser details using javascript Categories : Java Script, Beginner Guides, Browsers | | | PHP and javascript mouseover, mouseout, and mousedown events Categories : PHP, Java Script, Form Processing, Beginner Guides | | | Changing the Style of form objects using the JavaScript OnClick method. Categories : Java Script, Form Processing, Beginner Guides, CSS | | | Show or Hide your Content using Javascript Categories : Java Script, HTML, CSS, Beginner Guides | | | JavaScript dropdown list menu to switch any page. Categories : Java Script, Beginner Guides, Form Processing | |
|
|
|