XMLHttpRequest - readystate?
Heyjeg prøver at opdatere en tabel i en webshop via XMLHttpRequest..
det virker skam også fint, men bare ikke i IE.. (dvs testet i FF og virker perfekt)
der siger den at dataen, som kræves for at fuldføre handlingen, er ikke tilgængelige endnu..
har både prøvet med at udsætte den og få js til at sove lidt.. men INTET hjælper!
<script type="text/javascript">
var IE = false;
if (navigator.appName == "Microsoft Internet Explorer")
IE=true;
var timeout;
var http;
// to make sure that we create the right object if browser is IE BEFORE VERSION 7 or other
try{
http = new XMLHttpRequest();
} catch (e){
http = new ActiveXObject("Microsoft.XMLHTTP");
}
var eve;
var adr;
function sendRequest(action) {
http.open("GET", action);
http.send();
}
function emptyShoppingCart(){
eve = "action=emptyCart";
adr = 'appPort.php';
sendAction();
reloadCart();
}
function putInShoppingCart(){
var val = 0;
for( i = 0; i < document.lort.itemid.length; i++ )
{
if( document.lort.itemid[i].checked == true )
val = document.lort.itemid[i].value;
}
if (val > 0){
eve = "action=addToCart&variantid="+val+"&amount=1";
adr = 'appPort.php';
sendAction();
reloadCart();
}
}
function updateItemAmount(val,amount,index){
if (amount > 0){
eve = "action=updateItemAmount&variantid="+val+"&amount="+amount;
adr = 'appPort.php';
sendAction();
reloadCart();
} else {
document.getElementById("cartshow").deleteRow((index+1));
eve = "action=removeFromCart&variantid="+val;
adr = 'appPort.php';
sendAction();
reloadCart();
}
}
function reloadCart(){
http.open("GET","http://<?=getenv("SERVER_NAME");?>/webshop_dev/appPort.php?action=reload");
document.getElementById('rightMenu').innerHTML = http.responseText;
}
function sendAction(){
if (http.readyState == 0 || http.readyState == 4) {
sendRequest("http://<?=getenv("SERVER_NAME");?>/webshop_dev/"+adr+"?"+eve);
} else {
window.clearTimeout(timeout);
timeout = window.setTimeout(sendAction, 500);
}
}
</script>
Koden skulle gerne forklare sig selv..
det skal så også lige siges at jeg ikke har arbejdet så forfærdeligt meget med det!
har desuden været på nettet efter denne fejl..men kan ikke umiddelbart finde noget..
tak på forhånd
wel