2011-09-30 150 views
2

正如標題所說,我試圖使用jQuery-Ajax來填充對象的屬性。我一直試圖找到做幾個小時的正確方法,但不能使它工作...使用Ajax和Jquery填充對象

這是我的代碼:

function Persona(){ 
    this.nombre; 
    this.apellido; 
    this.buscarNombre= function(callback){ 
    $.get("nombre.php", function(datos){ 
     datos = eval("(" + datos + ")"); 
     this.nombre = datos.nombre; 
     this.apellido = datos.apellido; 
     alert(this.nombre); 
     }) 
    }; 
} 

$(document).ready(function(){ 
     var pp = new Persona(); 
     alert(pp.nombre); 

} 

我認爲這個問題是範圍從服務器檢索數據的功能與對象的範圍不同,但我不知道如何將數據從一個地方傳遞到另一個地方...

數據完全從網絡到達服務器...我用FireBug來確保...

在此先感謝!

+0

你需要調用實際函數嗎? 'pp.buscarNombre();'? – dm03514

回答

3

如果您將alert(pp.nombre);替換爲pp.buscarNombre();。你會得到理想的結果。而你的這個參考是錯誤的:

function Persona(){ 
    var self = this;  
    this.nombre; 
    this.apellido; 

    this.buscarNombre= function(callback){ 
     $.get("nombre.php", function(datos){ 
      datos = eval("(" + datos + ")"); 
      self.nombre = datos.nombre; 
      self.apellido = datos.apellido; 
      alert(self.nombre); 
     }) 
    } 
} 

$(document).ready(function(){ 
     var pp = new Persona(); 
     pp.buscarNombre();  
} 
+0

完美!非常感謝! – Andres