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...