2009-10-09 4 views
1

depuis deux heures j'ai essayé de transmettre responseText à l'objet que j'appelle Ajax.Request in. Et ça ne se passe pas :) Voici le code;Utilisation de la réponse Ajax.Request à l'intérieur d'un objet? - PrototypeJS

var traziSuggest = Class.create({ 
    initialize:function(elemenat, sugDiv) 
    { 
    this.elemenat = $(elemenat); 
    this.elemenat.onkeyup = this.uzmiSug.bindAsEventListener(this); 
    this.elemenat.onkeydown = this.uzmiSug.bindAsEventListener(this); 

    this.rezultat = new Array(); 

    this.sugDiv = $(sugDiv); 

    this.prethodnaDuzina = this.elemenat.value.length; 
    }, 
    uzmiSug:function() 
    { 
    this.novaDuzina = this.elemenat.value.length; 

    if (this.novaDuzina > 3 && this.novaDuzina != this.prethodnaDuzina) 
    {  
    new Ajax.Request('/ajax/traziSuggest.php?sta=mjesto&q=' + this.elemenat.value , 
    { 
     method: 'get', 
     onSuccess: function(transport) 
     { 
     traziSuggest.rezultat = transport.responseText; 
     } 
    }); 

    this.prikaziSug; 
    } 
    else 
    { 
    this.sugDiv.hide(); 
    } 

    this.prethodnaDuzina = this.novaDuzina; 
    }, 
    prikaziSug: function() 
    { 
    var zemlje = this.rezultat.zemlje; 
    var mjesta = this.rezultat.mjesta; 
    var lokacije = this.rezultat.lokacije; 
    } 
    }); 

Alors, ce que je besoin est de passer le transport.responseText aux objets this.rezultat variable. Des suggestions?

Répondre

2

Vous pouvez créer une fermeture, comme ceci:

if (this.novaDuzina > 3 && this.novaDuzina != this.prethodnaDuzina) 
{ 

    var self = this; 

new Ajax.Request('/ajax/traziSuggest.php?sta=mjesto&q=' + this.elemenat.value , 
{ 
    method: 'get', 
    onSuccess: function(transport) 
    { 
    self.rezultat = transport.responseText; 
    } 
}); 
Questions connexes