[ Milan Kragujevic @ 23.03.2011. 10:52 ] @
| Pozdrav!
Imam skriptu koja vuče saržaj iz php-a kada god se nešto ukuca u formu za pretragu.
Evo skripte
Code (javascript):
function showResult(str)
{
if (str.length==0)
{
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","pretraga.php?q="+str,true);
xmlhttp.send();
}
"Problem" je što prilikom učitavanja nema nikakog "fancy" kružića koji naznačava korisniku da se rezultati učitavaju i d atreba da sačeka.
Da li neko može da mi pomogne oko ubacivanja tog "kružića" (znate onaj ajax loader kod fancybox-a).
Bio bih veoma zahvalan! |
[ Milan Kragujevic @ 23.03.2011. 11:07 ] @
Rešeno!!!
Code (javascript):function showResult(str)
{
if (str.length==0)
{
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
else {
document.getElementById("livesearch").innerHTML = '<img src="loading.gif">';
}
}
xmlhttp.open("GET","pretraga.php?q="+str,true);
xmlhttp.send();
}
Dodato je Code (javascript):else {
document.getElementById("livesearch").innerHTML = '<img src="loading.gif">';
}
[Ovu poruku je menjao Milan Kragujevic dana 23.03.2011. u 18:36 GMT+1]
[ Aleksandar Ružičić @ 23.03.2011. 11:26 ] @
ne vidim da ti se ovaj drugi kod razlikuje od prvog...
ali kako se to obicno radi (i kako si verovatno i uradio, pisem zbog ostalih kojima ovo mozda zatreba) je da se pre slanja zahteva (pre xhr.send()) nekom elementu koji sadrzi loading animaciju i koji je inicijalno sakriven promeni stil tako da postane vidljiv (ovo moze da se odradi dodavanjem/sklanjanjem odredjene css klase, ili direktnim menjanjem .style.display propertija).
nakon zavrsenog upita (nije bitno da li je zavrsen uspesno ili je vracena greska i ne treba ovo raditi samo kad smo dobili potvrdan odgovor od servera jer to nije uvek slucaj) jednostavno treba vratiti izmene koje smo napravili pre pocetka slanja (dakle ili skloniti/vratiti klasu ili podesiti .style.display na 'none').
[ Br@nkoR @ 23.03.2011. 11:30 ] @
Code:
else {
document.getElementById("livesearch").innerHTML = '<img src="loading.gif">';
}
[ Aleksandar Ružičić @ 23.03.2011. 12:46 ] @
aha, vidi stvarno.. promaklo mi :)
[ Milan Kragujevic @ 23.03.2011. 17:28 ] @
Malo je glup način kako to funkcioniše(meni), ali barem RADI!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.