Ajax rezultat

1

Ajax rezultat

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Ovako, treba da pozovem neku php stranicu i da ispise nesto (primjer) i to radi kako treba, ali posto imam vise stvari, zelim da napravim vise rezultatnih divova, rez1, rez2, rez3 itd..

E sad, greska je u tome sto nisam toliko strucan sa jsom pa mi treba pomoc

Evo sta sam ja "napravio"

function dc(id) { var idd = "rez"+id; xmlHttp=GetXmlHttpObject() if (xmlHttp==null)  {  alert ("Browser does not support HTTP Request")  return  } var url = "dc.php?id="+id; xmlHttp.onreadystatechange=stateChanged(id) xmlHttp.open("GET",url,true) xmlHttp.send(null) } function stateChanged(idd) { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")  {  document.getElementById(idd).innerHTML=xmlHttp.responseText  } } function GetXmlHttpObject() { var xmlHttp=null; try  {  // Firefox, Opera 8.0+, Safari  xmlHttp=new XMLHttpRequest();  } catch (e)  {  //Internet Explorer  try   {   xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");   }  catch (e)   {   xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");   }  } return xmlHttp; }

Naravno stranica se preko PHP lepo generise. Sta nisam dobro uradio Sad ?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Nisam bas siguran sta tacno zelis, ali ako zelis da ti se taj isti rezultat ispise na vise razlicitih mesta, uradi sledece:

function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")  {  document.getElementById(idd).innerHTML=xmlHttp.responseText;  document.getElementById('rez1').innerHTML=xmlHttp.responseText;  document.getElementById('rez2').innerHTML=xmlHttp.responseText;  document.getElementById('rez3').innerHTML=xmlHttp.responseText;  // ...  } }



offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Nisam dobro objasnio, broj rezultata nije fiksan. Mjenja se konstantno.

Uglavnom treba da prodje variabla idd do one funkcije koja mjenja sadrzaj diva, sto ne prolazi Sad

Citat:function stateChanged(idd)
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById(idd).innerHTML=xmlHttp.responseText
}
}

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

Valjda odgovaras sa PHP-om kroz XML, znaci navodi u samom XML-u koji div ti se traba refreshovati i sa kojim textom.

recimo

<content>    <id>tvoj_div_id</id>    <html>tvoj_content</html> </content> <content>    <id>tvoj_div_id2</id>    <html>tvoj_content2</html> </content>

i onda u JS-u

for(x in xmlHttp.response.content)    $(xmlHttp.response.content[x].id).innerHTML = xmlHttp.response.content[x].html;

mislim da ce s razumjeti.

Inace ovo gore si lose zamislio, onreadystatechange funkcija ce biti pozvana i argument ce joj biti proslijedjen rezultat response-a

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Nadao sam se i ja da cu razumjeti ali ne razumijem Very Happy

Citam kod i ne vidim kako je on povezan sa XMLom Confused Sad tj content[x] je li na x treba da stavim 1 da bi citao sadrzaj <id></id> ili sta ?

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

evo pazi na sta sam mislio


function dc(){ xmlHttp=GetXmlHttpObject(); xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){ stateChanged( xmlHttp.responseXML );}}; xmlHttp.open("GET",'rez.xml',true) xmlHttp.send(null) } function stateChanged(Response){    var XmlObj = Response.getElementsByTagName('content');    for (i=0;i<XmlObj.length;i++){       var id = XmlObj[i].childNodes[1].firstChild.nodeValue;       var html = XmlObj[i].childNodes[3].firstChild.nodeValue;       document.getElementById(id).innerHTML = html;    } } function GetXmlHttpObject(){    var xmlHttp=null;    try{xmlHttp=new XMLHttpRequest();}    catch(e){try{xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}    catch(e){xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}}    return xmlHttp; }

<div id="tvoj_div_id">tvoj_div_id start content</div> <div id="tvoj_div_id2">tvoj_div_id2 start content</div> <br/> <a href='#' onclick="dc();return false;">Click</a>

rez.xml
<contents>    <content>       <id>tvoj_div_id</id>       <html>tvoj_div_id end content</html>    </content>    <content>       <id>tvoj_div_id2</id>       <html>tvoj_div_id2 end content</html>    </content> </contents>

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Ne radi Sad ne znam zasto, ali ne radi Sad

Malo sam promijenio kod ali samo dodao da prosledjuje phpu promjenljivu id i to je sve

function dc(id){ var url = "dc.php?id="+id; xmlHttp=GetXmlHttpObject(); xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){ stateChanged( xmlHttp.responseXML );}}; xmlHttp.open("GET",url,true) xmlHttp.send(null) }

Ne vjerujem da bi to moglo da utice na rezultat Confused u dokumentu postoji div pod imenom rez1 i xml se generise

<contents>    <content>       <id>rez1</id>       <html>tvoj_div_id end content</html>    </content>    <content>       <id>rez2</id>       <html>tvoj_div_id2 end content</html>    </content> </contents>

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

moras da u php-u stavis prije generisaja rezultata

header("Content-type: text/xml");

Dopuna: 15 Dec 2008 13:31

evo nesto me ovo malo zainteresvalo pa sam napravio neko bolje rjesenje.
Recimo da kroz xml koji dobijes mozes da mjenjas sve property-e odredjenog objecta.

Okacio sam primjer.

https://www.mycity.rs/must-login.png

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Meni u onoj arhivi nema javascripta nikako Very Happy ?

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

Smile Do It Again

Ko je trenutno na forumu
 

Ukupno su 832 korisnika na forumu :: 6 registrovanih, 0 sakrivenih i 826 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: draggan, Koridor, MB120mm, Penzula, Shilok, Vlajman1957