Autor Zpráva
siginigin
Profil *
dobry den

chcem po kliknuti tlacitka urobit toto:
max = GetMAX();

pricom GetMAX() je definovany nejako takto:
function GetMAX(){
  var response = '';
  ... vytvorenie XMLHTTPRequest objektu http
  ... nastavenie jeho parametrov
  http.onreadystatechange = function(){
    if(http.readyState == 4){
      response = http.responseText;
    }
  }
  http.send();  
}


chcem teda do premmenej max priradit vysledok funkcie GetMAX(), cize hodnotu response, lenze nejako mi to nefunguje.

vdaka za radu.
t4nn3r
Profil
zde je funkcni AJAX script, req posilas POST, targ je cilovy html prvek, host je cilovy script na serveru.
    <script language="javascript" type="text/javascript">
    
    function ziskejformular(req , targ, host) 
    {
         var http_request = false;
        if (window.XMLHttpRequest) 
        { 
            http_request = new XMLHttpRequest();
        } 
        else if (window.ActiveXObject) 
        { 
            try 
            {
              http_request = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (error)
            {
              http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        http_request.onreadystatechange = function() { returnValidate(http_request, targ); };
        http_request.open('POST', host, true);
        http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        http_request.send(req);
   }
    function returnValidate(http_request, targ) 
    {
        if (http_request.readyState == 4) 
        {
            if (http_request.status == 200) 
            {
                document.getElementById(targ).innerHTML=http_request.responseText
            }
            else
            {
                document.getElementById(targ).innerHTML="Nastala chyba na serveru."
            }
        }
        else
        {
                document.getElementById(targ).innerHTML="Zpracovavam data..."
        }
    }


misto do document.getElementById(targ).innerHTML muzes pridelit vysledek do promenne...
Chamurappi
Profil
Reaguji na siginigina:
AJAX funguje asynchronně. Viz:
responseText jquery (callback)
JQuery - zapúzdrenie?


Reaguji na t4nn3ra:
To nijak neřeší to, na co se ptá, ne?
_es
Profil
siginigin:
Veď ti stačí zrušiť druhý riadok a v siedmom riadku nahradiť response za max.
siginigin
Profil *
Chamurappi:
samozrejme mas pravdu, len niekde som videl ay to fungovalo synchronne. pravdepodobne ale bude rozumnejsie cele to prepisat tak aby to bolo asynchronne, takze vsetko co je za max = GetMAX() premiestnim do tej callback funkcie.

_es:
bude stacit, ked to cele prepisem :)

vdaka za rady.

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: