Autor Zpráva
hal_sk
Profil
Zdravím.
Chcel by som JS funkciu, ktorá mi vráti výsledok z externého php skriptu, pričom parametrom funkcie bude jeho url adresa.
Prosím o radu, ako modifikovať nasledovnú funkciu tak, aby mi vedela vrátiť "xmlhttp.responseText".
function getAJAXresult(url)
{
  xmlhttp=getHTTPObjectUser();
  xmlhttp.onreadystatechange=function()
  {
   if(xmlhttp.readyState==4 && xmlhttp.status==200)
   {
    result=xmlhttp.responseText;
   }    
  }
  
  xmlhttp.open('get',url, true);
  xmlhttp.send();
}


Ak tam dám niekde do funkcie "return result;", tak to nejde.
Chamurappi
Profil
Reaguji na hala_sk:
Víš, co znamená to první áčko ve zkratce AJAX? Viz má odpověď na nedávný dotaz.
hal_sk
Profil
Chamurappi:
Skúšal som hľadať nejaké riešenia, našiel som hlavne riešenia s použitím callback funkcie, alebo radu nevracať výsledok cez return, ale napasovať ho do ďalšej funkcie.
Ani jedno som však nevedel aplikovať. Môžete mi poskytnúť ďalšie vodítko?
peta
Profil
hal_sk:
text = ajax($url);
Takovy zapis je v celku i nemozny, protoze onready je casova funkce a u ni neni jiste, kdy se v ni vysledek objevi.
Jo, ona probiha, probiha a treba za 5s naplni result. Proto se tam dava
xmlhttp.onreadystatechange = function ...

Muzes udelat
xmlhttp.result = xmlhttp.responseText;
A pak ale musis mit jinou funkci, ktera pres casovac kontroluje, zda uz je xmlhttp.result != null. A nebo proste ten kod napis dovnit te onreadystatechange = function a nedavej tam zadny return result.

 xmlhttp.onreadystatechange=function()
  {
   if(xmlhttp.readyState==4 && xmlhttp.status==200)
   {
    pridej(xmlhttp.responseText);
   }    
  }
function pridej(text)
{
mydiv.innerHTML = text;
}

Nebo

 xmlhttp.onreadystatechange=function()
  {
   if(xmlhttp.readyState==4 && xmlhttp.status==200)
   {
    xmlhttp.func(xmlhttp.responseText);
   }    
  }
...
  xmlhttp.func = pridej;
  xmlhttp.open('get',url, true);
  xmlhttp.send();


http://peter-mlich.wz.cz/programs/ajax1/ajax.htm
_es
Profil
hal_sk:
Môžete mi poskytnúť ďalšie vodítko?
Univerzální funkce pro AJAX
hal_sk
Profil
Dík, idem to stráviť.

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