first commit
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
// start ajaxrequest.js
|
||||
|
||||
|
||||
// Following is a javascript function that makes a httprequest - AJAX. This is the AJAX bit and all that is needed in that manner.
|
||||
// Only in this one we won't be using XML in our response, we will accept and handle
|
||||
// pure text and html and display this response directly to the user within the
|
||||
// desired <div id> tags. It can even be used to include pure html files as a substitute
|
||||
// solution to the "old" frames method where as no php or other scripting language is nessesary on the server.
|
||||
// but use it with care - it is not a search engine supported method and indexing will fail. Workaround for this is not included here
|
||||
|
||||
function MyAjaxRequest(target_div,file,check_div)
|
||||
{
|
||||
var MyHttpRequest = false;
|
||||
var MyHttpLoading = '<img src="include/loading.gif" border="0" alt="loading.." />'; // or use an animated gif instead: var MyHttpLoading = '<img src="loading.gif" border="0" alt="running" />';
|
||||
var ErrorMSG = 'Sorry - No XMLHTTP support in your browser, buy a newspaper instead';
|
||||
|
||||
if(check_div)
|
||||
{
|
||||
var check_value = document.getElementById(check_div).value;
|
||||
}
|
||||
else
|
||||
{
|
||||
var check_value = '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(window.XMLHttpRequest) // client use Firefox, Opera etc - Non Microsoft product
|
||||
{
|
||||
try
|
||||
{
|
||||
MyHttpRequest = new XMLHttpRequest();
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
MyHttpRequest = false;
|
||||
}
|
||||
}
|
||||
else if(window.ActiveXObject) // client use Internet Explorer
|
||||
{
|
||||
try
|
||||
{
|
||||
MyHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
try
|
||||
{
|
||||
MyHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
MyHttpRequest = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MyHttpRequest = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(MyHttpRequest) // browser supports httprequest
|
||||
{
|
||||
var random = Math.random() * Date.parse(new Date()); // make a random string to prevent caching
|
||||
|
||||
var file_array = file.split('.'); // prepare to check if we have a query string or a html/htm file
|
||||
if(file_array[1] == 'php') // no query string, just calling a php file
|
||||
{
|
||||
var query_string = '?rand=' + random;
|
||||
}
|
||||
else if(file_array[1] == 'htm' || file_array[1] == 'html') // calling a htm or html file
|
||||
{
|
||||
var query_string = '';
|
||||
}
|
||||
else // we have presumable a php file with a query string attached
|
||||
{
|
||||
var query_string = check_value + '&rand=' + random;
|
||||
}
|
||||
|
||||
|
||||
MyHttpRequest.open("get", url_encode(file + query_string), true); // <-- run the httprequest using GET
|
||||
|
||||
|
||||
// handle the httprequest
|
||||
MyHttpRequest.onreadystatechange = function ()
|
||||
{
|
||||
if(MyHttpRequest.readyState == 4) // done and responded
|
||||
{
|
||||
document.getElementById(target_div).innerHTML = MyHttpRequest.responseText; // display result
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById(target_div).innerHTML = MyHttpLoading; // still working
|
||||
}
|
||||
}
|
||||
MyHttpRequest.send(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById(target_div).innerHTML = ErrorMSG; // the browser was unable to create a httprequest
|
||||
}
|
||||
}
|
||||
// end of "AJAX" function
|
||||
|
||||
|
||||
// Here follows a function to urlencode the string we run through our httprequest, it has nothing to do with AJAX itself
|
||||
// If you look carefully in the above httprequest you se that we use this url_encode function around the file and query_string
|
||||
// This is very handy since we are using GET in our httprequest and for instance
|
||||
// any occurrance of the char # (from textboxes etc) will brake the string we are sending to our file - we don't want that to brake!
|
||||
// It will also convert spaces to +
|
||||
|
||||
function url_encode(string){
|
||||
var string;
|
||||
var safechars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/-_.&?=";
|
||||
var hex = "0123456789ABCDEF";
|
||||
var encoded_string = "";
|
||||
for(var i = 0; i < string.length; i++)
|
||||
{
|
||||
var character = string.charAt(i);
|
||||
if(character == " ")
|
||||
{
|
||||
encoded_string += "+";
|
||||
}
|
||||
else if(safechars.indexOf(character) != -1)
|
||||
{
|
||||
encoded_string += character;
|
||||
}
|
||||
else
|
||||
{
|
||||
var hexchar = character.charCodeAt(0);
|
||||
if(hexchar > 255)
|
||||
{
|
||||
encoded_string += "+";
|
||||
}
|
||||
else
|
||||
{
|
||||
encoded_string += "%";
|
||||
encoded_string += hex.charAt((hexchar >> 4) & 0xF);
|
||||
encoded_string += hex.charAt(hexchar & 0xF);
|
||||
}
|
||||
}
|
||||
}
|
||||
return encoded_string;
|
||||
}
|
||||
|
||||
// end .js file
|
||||
Reference in New Issue
Block a user