Autor Zpráva
zis
Profil *
caute

mam jeden problemek.

Nacitam do nejakeho divu dynamicky obsah pomoci ajaxu, nejak takto.

document.getElementById(element_id).innerHTML = httpRequest.responseText;


v FF a podobnych je to v poradku, v IE 7, 6 to nefunguje.

Co sem se tak koukal, tak sem videl alternativy s appendChild, to ale pouze pridava textovy element.
pomoci toho sem to delal takto

        
var el = document.getElementById(element_id);
var text = document.createTextNode(httpRequest.responseText);
el.removeChild(el.lastChild);
el.appendChild(text);


coz uz vypada ze by mohlo fungovat ale podle me v promenne text je pouze text/plain resp. kdyz zde posilam html tak se treba znaky < > vyescapuji za &lt, &gt a vypise se pouze jako text.

Nemate nejaky napad jak na to?
Měsíček
Profil
Odkdy nefunguje v IE innerHTML? Prosil bych živou ukázku.
zis
Profil *
no nazivo to ted nebezi ale jak sem psal kdyz sem pouzil nasledujici kod

document.getElementById(element_id).innerHTML = httpRequest.responseText;


tak to v ie nefungovalo, ale kdyz sem si alertnul httpRequest.responseText, tak i v IE to vypsalo ten spravnej text, ale pomoci innerHTML uz to nevlozilo.
bohyn
Profil
zis
appendChild() je sice uzitecna funkce, ale pokud to nechces delat pro kazdy element zvlast, tak se vrat zpatky k innerHTML - funguje.
zis
Profil *
mno jak na to koukám tak delsi text to nezvlada, kdyz vypisu treba ahoj tak je to v poradku, pokud mu poslu delsi html tak neudela nic
Měsíček
Profil
IMHO zase vedle .. na délce textu to záležet nebude. Zkus to hodit na net, ať se na to můžeme kouknout.
zis
Profil *
aha tak problem bude asi jinde, ale vubec to nechapu

zezacatku vypisu na strance data, pak je po nejakym intervalu preloadnu pomoci ajaxu

co se ale nestane, i kdyz ve scriptu, kterej se vola v metode open objektu httpRequest, smazu veskerej obsah v ie to porad funguje a vypisuje stara data!!??

znamena to ze kdyz tam neco pridam noveho tak po refreshy se mi stejne nactou stare hodnoty, jakoby se nejak nakesovali.

nevite co s tim? vubec to nechapu
Měsíček
Profil
Něco děláš špatně, ale co přesně to ti málo kdo poví (jestli kolegům funguje křišťálová koule - nevím).
zis
Profil *
no kod v javascriptu je tento

preloadData();
function preloadData()
{  
  setInterval("refreshData()", sek); // načasuje opakovanou akci
} 

function createRequest()
{
  if (window.ActiveXObject)
    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
  else
    httpRequest = new XMLHttpRequest();
  
  return httpRequest;
}

function refreshData()
{
  preloadLineUpHome(); 
  
  preloadLineUpAway();

  preloadReporting(); 
  
  preloadMatchStatus();
    
  //preloadTitleMatch();
  
  preloadGoals();
} 

function preloadReporting()
{
  h1 = createRequest();
  getData(h1,"/online/getreport.php?id=" + id,"online_reportage");
}

function preloadLineUpHome()
{
  h2 = createRequest();
  getData(h2,"/online/getlineuphome.php?id=" + id,"online_lineup_home");
}

function preloadLineUpAway()
{
  h3 = createRequest();
  getData(h3,"/online/getlineupaway.php?id=" + id,"online_lineup_away");
}

function preloadMatchStatus()
{
  h4 = createRequest();
  getData(h4,"/online/getmatchstatus.php?id=" + id,"online_status");
}

/*function preloadTitleMatch()
{
  h5 = createRequest();
  getData(h5,"/online/gettitlematch.php?id=" + id,"online_pg_title");
}*/

function preloadGoals()
{
  h6 = createRequest();
  getData(h6,"/online/getgoals.php?id=" + id,"online_goals");
}

function getData(httpRequest, url, element_id)
{
  httpRequest.open("GET", url, true);
  httpRequest.setRequestHeader("Accept-Charset","UTF-8");
  httpRequest.onreadystatechange= function () {processRequest(httpRequest,element_id); } ;
  httpRequest.send(null); 
}

function escapeHTML(someText) {
  var div = document.createElement('div');
  var text = document.createTextNode(someText);
  div.appendChild(text);
  return div.innerHTML;
}


function processRequest(httpRequest, element_id)
{
  if (httpRequest.readyState == 4)
  {
    if(httpRequest.status == 200)
    {
        //var el = document.getElementById(element_id);
        //var div = document.CreateElement("");
        //alert(el.id);
        //var text = document.createTextNode("<table>ahoj</table>");
        //el.removeChild(el.lastChild);
        //alert(el.lastChild.name);
        //el.appendChild(text);

       var text = httpRequest.responseText;
       //alert(text);
      document.getElementById(element_id).innerHTML = text;
    }
    else
    {
        alert("Chyba pri nacitani stanky "+ httpRequest.status +" : "+ httpRequest.statusText);
    }
  }
}


v phpku jsou jen metody, ktery provedou nejakej dotaz a echnou data
bohyn
Profil
zis
Zkus pouzivat min pozadavku, zjisti si neco treba o JSON a redukuj tech 6 pozadavku do jednoho. Je mozne ze se ti navzajem potlucou.
V PHP zakaz cache pred HTTP hlavicky.
zis
Profil *
jo díky bohyn, problem byl s cache. Prdnul sem tam

  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); 
  header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); 
  header("Cache-Control: no-cache, must-revalidate" ); 
  header("Pragma: no-cache" );


a vse facha jak ma.

Jinak diky za typ o JSON, nic moc o tom nevim ale co sem si ted cet, vypada to slusne. Ted uz jen aby byl na to cas :-).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0