...

View Full Version : Ajax Pagenav not working on IE but works in FF



jucedupp
12-04-2008, 06:57 AM
Hi Guys

I am really stumped here. I have a piece of inhereted code that does a pagenav (forward back page 1, 2, 3, show 5, 10, 20 records etc) via ajax. As far as I can gather, this is a virtuemart page navigation tool that another developer copied and stuck into a joomla frontend tool. The class, if anyone is familiar with it is virtuemart's ajaxPageNavigation.php (Just for your information)

This is the offending javascript:


var xmlHttp;
var id;

function submitAjax() {

showDataInput('pageNav');
}

function showDataInput(gtask, cmid, new_id, luid) {

id = 'cellar_sales_history';
if ( new_id != undefined ) {
id = new_id;
}
var ls = document.adminForm.limitstart.value;
var lim = document.adminForm.limit.value;
var url = document.adminForm.siteurl.value;
var iam = document.adminForm.iam.value;
var from = document.adminForm.from.value;
var to = document.adminForm.to.value;
document.getElementById(id).innerHTML="Loading...";
var url = url + "/administrator/components/com_virtuemart/classes/report.cellar_sales_history_process.php?&option=com_virtuemart&page=admin.user_form&gtask="
+ gtask + "&limit=" + lim + "&limitstart=" + ls + "&iam=" + iam + "&from=" + from + "&to=" + to + "&url=" + url;
xmlHttp = GetXmlHttpObject(stateChanged);
xmlHttp.open("GET", url , true);
xmlHttp.send(null);
}

function stateChanged() {
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
document.getElementById(id).innerHTML=xmlHttp.responseText ;
}
}

function GetXmlHttpObject(handler) {
var objXmlHttp=null;
if (navigator.userAgent.indexOf("Opera")>=0) {
alert("This example doesn't work in Opera") ;
return ;
}
if (navigator.userAgent.indexOf("MSIE")>=0) {
var strName="Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
strName="Microsoft.XMLHTTP";
} try {
objXmlHttp=new ActiveXObject(strName);
objXmlHttp.onreadystatechange=handler ;
return objXmlHttp;
} catch(e) {
alert("Error. Scripting for ActiveX might be disabled");
return;
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0) {
objXmlHttp=new XMLHttpRequest();
objXmlHttp.onload=handler;
objXmlHttp.onerror=handler;
return objXmlHttp;
}
}

The problem is that document.adminForm.siteurl.value is not getting sent in IE. I get "document.adminForm.siteurl.value is null or not an object" in ie's javascript box, when I use any of the page navigation functions.

Now, I have read that IE does not "re-initialize" the xmlhttp object on the second iteration, but I cannot fix it, I just do not know enough about Ajax.

It works fine in FF.

I have tried implementing some other fixes found here and other places, but I keep breaking it. Could anyone please show me how to get around this issue in realtion to the above code?


Thanks in advance for your help.

Cheers

Jacques



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum