Hey i am not great at ajax but I would like to get some help got this function ajax(nastaveni) { // Naèteme nastavenà nebo uložÃme výchozÃ. nastaveni = { // Typ HTTP požadavku typ: nastaveni.typ || "", // URL, na kterou bude požadavek proveden url: nastaveni.url || "", // Èasový limit dokonèenà požadavku timeout: nastaveni.timeout || 5000, // Funkce, které se zavolajà pøi selhánà èi úspìchu požadavku // nebo pøi jeho dokonèenà (a už úspìšném èi neúspìšném) onComplete: nastaveni.onComplete || function(){}, onError: nastaveni.onError || function(){}, onSuccess: nastaveni.onSuccess || function(){}, // Typ dat, který bude vrácen ze serveru. // Výchozà nastavenà znamená, že typ bude urèen podle serveru // a podle toho se dále zachováme. data: nastaveni.data || "" }; if ( typeof XMLHttpRequest == "undefined" ) { XMLHttpRequest = function () { return new ActiveXObject( navigator.userAgent.indexOf("MSIE 5") >= 0 ? "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP" ); } } // VytvoøÃme objekt požadavku. var xml = new XMLHttpRequest(); // Otevøeme asynchronnà požadavek typu GET. xml.open("GET", nastaveni.url, true); // Pamatujeme si, jestli byl požadavek úspìšnì dokonèen. var pozadavekDokoncen = false; // Inicializujeme callback funkci, která se spustà za pìt sekund // a zrušà požadavek (pokud se tak již nestalo). setTimeout(function(){ pozadavekDokoncen = true; }, nastaveni.timeout); // HlÃdáme zmìny stavu požadavku. xml.onreadystatechange = function(){ // Èekáme na kompletnà naètenà dat, // a ujistÃme se, že èasový limit požadavku ještì nevypršel. if ( xml.readyState == 4 && !pozadavekDokoncen ) { // Zkontrolujeme, zda byl požadavek úspìšný if ( httpSuccess( xml ) ) { // Zavoláme callback funkci pro úspìšné provedenà požadavku // s daty vrácenými ze serveru. nastaveni.onSuccess( httpData( xml, nastaveni.typ ) ); // Jinak nastala chyba, zavoláme tedy callback funkci pro chybový stav. } else { nastaveni.onError(); } // Zavoláme callback funkci pro dokonèenà požadavku. nastaveni.onComplete(); // UklidÃme po sobì, abychom pøedešli úniku pamìti. xml = null; } }; // Navážeme spojenà se serverem. xml.send(null); // ZjistÃme, zda HTTP požadavek uspìl. function httpSuccess(r) { try { // Pokud nebyl vrácen žádný stav a žádáme o mÃstnà soubor, // pak byl požadavek úspìšný. return !r.status && location.protocol == "file:" || // Jakýkoliv status od 200 do 299 je dobrý. ( r.status >= 200 && r.status < 300 ) || // Úspìšnì dokonèeno, pokud dokument nebyl zmìnìn. r.status == 304 || // ProhlÞeè Safari vracà prázdný satus, pokud soubor nebyl zmìnìn. navigator.userAgent.indexOf("Safari") >= 0 && typeof r.status == "undefined"; } catch(e){} // Pokud kontrola stavu vyhodila výjimku, pøedpokládáme, že požadavek také neuspìl. return false; } // ZÃskáme správná data z HTTP odpovìdi. function httpData(r,typ) { // ZÃskáme hlavièku Content-Type. var ct = r.getResponseHeader("Content-Type"); // Pokud nebyl urèen výchozà typ, zjistÃme, zda server vrátil // nìjaký druh XML. var data = !typ && ct && ct.indexOf("xml") >= 0; // Pokud bylo ze serveru vráceno XML, zÃskáme XML dokument; // jinak vrátÃme textový obsah, který server poslal. data = typ == "xml" || data ? r.responseXML : r.responseText; // Pokud je udán typ "script", provedeme vrácený text jako JavaScript. if ( typ == "script" ) eval.call( window, data ); // VrátÃme data z odpovìdi (buï XML dokument, nebo textový øetìzec). return data; } } function countDown(timeto,id) { if (timeto < 1) { //ajaxref( document.getElementById(id).innerHTML = 'ssupa'; timeto = 6; ajax({typ: 'HTML',url: 'getupdate.php?id='+id, onSuccess: function(html) {var xx=document.getElementById(id); xx.innerHTML = html; }}); //document.location.reload(); } else { var h = 0; var m = 0; var s = 0; if (timeto>3559){h=parseInt(timeto/3600);} var bh = timeto-(h*3600); if (bh>59) {m=parseInt(bh/60);} var bm = timeto - (h*3600) - (m*60); s=bm; if (h<10) {h = '0'+h;} if (m<10) {m = '0'+m;} if (s<10) {s = '0'+s;} var out = h+':'+m+':'+s; document.getElementById(id).innerHTML=out; } } function countdown(timenow,id) { if (timenow < 1) { document.getElementById(id).innerHTML = 'test'; timeto = 6; ajax({typ: 'HTML',url: 'getupdate.php?id='+id, onSuccess: function(html) {var xx=document.getElementById(id); xx.innerHTML = html; }}); } else{countDown(timenow,id); var timenow = timenow-1; to = setTimeout("countdown("+timenow+",'"+id+"')",1000); } } PHP: & I am calling it with <script>countdown(100,'counter');</script> PHP: Okay, countdowning works. My problem is after when 'timenow' reaches 0. I need to call file & reload countdown(100,'counter'); function but it ignores it when ajax add "read" that function call. Its for bidding script. Can someone help me ?
I am not so sure, but following should help: function countdown(timenow,id) { if (timenow < 1) { document.getElementById(id).innerHTML = 'test'; timeto = 6; ajax({typ: 'HTML',url: 'getupdate.php?id='+id, onSuccess: function(html) {var xx=document.getElementById(id); xx.innerHTML = html; }}); to = setTimeout("countdown("+100+",'"+id+"')",1000); } else { countDown(timenow,id); var timenow = timenow-1; to = setTimeout("countdown("+timenow+",'"+id+"')",1000); } } Code (markup):