Java programozas, javascript
  • Macros
    #41
    Sziasztok!

    Lenne egy problémám. Létrehozok egy objektumot, egy select mezőt. Aztán ajax-al lekérem a tartalmát. Ez az objektum egy funkciója lenne. A szerver válaszának feldolgozását rábízom egy funkcióra, mely szintén az Objektum része. Azonban ekkor már nem tudom lekérni az objektum adatait (pl. a select ID-jét amit az elején, az objektum létrehozásánál adok meg neki)



    Íme a kód:

    // JavaScript Document

    function AnswerClear(ClearingAnswer)
    {
    var ClearingAnswer = ClearingAnswer.substring(2);
    SplitAnswer = ClearingAnswer.split('//');
    if (SplitAnswer[1] != "OK")
    {
    alert (SplitAnswer[1]);
    ClearAnswer = "";
    }
    else
    {
    ClearAnswer = SplitAnswer[2];
    }
    return ClearAnswer;
    }

    function CountryList(ID)
    {
    this.CountryFormID = ID;
    this.QueryURL = 'adrserver.php';
    this.QueryPars = 'com=countryquery&adr=country';
    this.QueryMethod = 'get';

    //functions
    this.ListAnswerNow = CountryAnswer;
    this.ListQueryNow = ListQuery;
    }

    function CountryAnswer(originalRequest)
    {
    //put returned XML in the textarea
    var answer = originalRequest.responseText;
    var FormID = this.CountryFormID;

    // A FormID sajnos undefinied, ugyanúgy ahogy a CountryFormID.
    // Amennyiben az objektum nevén keresztül hivatkozom rá, úgy megtalálja. pl.: proba.CountryFormID
    alert(FormID);
    $("assaas").options[0] = new Option("Új ország felvitel", "uj");
    data = AnswerClear(answer);
    MyOptions = data.split('**');
    alert (MyOptions);
    if (MyOptions == '') { MyOptions = ''; }
    for (i = 0; i<MyOptions.length; i++)
    {
    MyOption = MyOptions[i].split('*-');
    OptiV=MyOption[0];
    OptiN=MyOption[1];
    OptiI=MyOption[2];
    OptiNumber = i+1;
    $('assaas').options[OptiNumber]=new Option(OptiN+" ["+OptiI+"]",OptiV,"");
    }

    }

    function ListQuery()
    {
    var url = this.QueryURL;
    var myMethod = this.QueryMethod;
    var myPars = this.QueryPars;

    // Itt van értéke a this.CountryFormID -nek
    alert(this.CountryFormID);
    var myAnswer = this.ListAnswerNow;
    var myAjax = new Ajax.Request( url, { method: myMethod, parameters: myPars, onComplete: myAnswer });
    }

    és az objektum meghívása:

    proba = new CountryList('assaas');

    function haha()
    {
    proba.ListQueryNow();
    }

    Az ajax (prototype) miatt "esik" ki a program az objektumból? vagy valami alapvető hibát vétettem?

    (BUÉK)