Javascript értékátadás
Kissé fura lehet a problémám, és kapásból nehéz is jó leírást adjak róla, ezért előre is sry.
Egy ideje már foglalkozok ajax-os oldalakkal, és valahogy mindíg megkerültem a dolgot, de most úgy döntöttem szembenézek vele, írok már magamnak végre egy ajax metódust (meg hát igazából osztályt), amit bármikor használhatok. Szép és jó minden, csak mikor megérkezik a szerverről a válasz, akkor nem tudom kiizzadtatni vele ugyanis egy ilyen:felüldefiniálással értelemszerűen nem jelenít meg semmit az alert. Ide viszont később komolyabb eljárások kerülnének, szóval ezt a módot szeretném használni.
így néz ki az osztály:És végül a kérdés: Meg leget-e ezt oldani valami féle "kései értékátadással".
(Elnézést a hülye kérdésért, de ez egy kisebb része egy nagy egésznek... már be vagyok fáradva, valsz a szememtől nem látok)
■ Egy ideje már foglalkozok ajax-os oldalakkal, és valahogy mindíg megkerültem a dolgot, de most úgy döntöttem szembenézek vele, írok már magamnak végre egy ajax metódust (meg hát igazából osztályt), amit bármikor használhatok. Szép és jó minden, csak mikor megérkezik a szerverről a válasz, akkor nem tudom kiizzadtatni vele ugyanis egy ilyen:
ajax.state.finish.ok = function(){
alert(ajax.resp_text);
}
így néz ki az osztály:
var ajax = {
req_mode : "post",
resp_text : "",
br_supp : function(){ alert("Ez a böngésző nem támogatja az ajaxot."); },
wr_path : function(){ alert("Szerver oldali alkalmazás nem elérhető. Vegye fel a kapcsolatot az adminisztrátorral."); },
state : {
finish : {
ok : function(){ alert("Az adatokat sikeresen feldolgoztuk!"); },
notok : function(){ alert("Hiba a feldolgozás során!"); }
}
},
request : function(url, params){
var xmlHttp;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
this.br_supp();
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
this.resp_text = xmlHttp.responseText;
alert(this.resp_text);
ajax.state.finish.ok();// TODO ?? this. -re ??
}
}
try{
if((this.req_mode.toUpperCase())=="POST"){
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send(params);
}
else{
xmlHttp.open("GET", url + "?" + params,true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send(null);
}
}catch(e){
// this.wr_path();
alert(e);
}
}
(Elnézést a hülye kérdésért, de ez egy kisebb része egy nagy egésznek... már be vagyok fáradva, valsz a szememtől nem látok)
Miért kell neked egy saját
Persze ha mindenképpen sajátot szeretnél akkor még mindig megnézheted, hogy hogyan csinálják ezek.
:) köszi, utánanézek...