2015-06-10 17 views
0

我想访问某个变量(datoslicitproduct),我声明了一个Ext.Ajax.request,但我在请求中初始化它。 我有这样的功能:Ext.Ajax.request变量

function ExportarExcelproddet(){ 
var datoslicitaciones = []; 
var datoslicitproduct=[]; 
var datafinal; 
var fila=[]; 
var fila2=[]; 
var Tipo; 
var IdPliego; 
ExpGridstore.each(function(r){ 
    fila.push(r.data['Tipo']); 
    fila.push(r.data['IdTxt']); 
    fila.push(r.data['Id_Exp']); 
    fila.push(r.data['Exp']); 
    fila.push(r.data['Org']); 
    fila.push(r.data['Fpub'].format('d/m/Y')); 
    fila.push(r.data['Fvto'].format('d/m/Y')); 
    fila.push(r.data['Estado']); 
    datoslicitaciones.push(fila); 
    fila=[]; 
}); 
var respuestaphp; 
var row; 
var cont=0; 
while(cont<datoslicitaciones.length){ 
    Tipo=datoslicitaciones[cont][0]; 
    IdPliego=datoslicitaciones[cont][2]; 
    Ext.Ajax.request({ 
     url:'./php/ProductosDetalleExp.php', 
     params:{cliente:despliegue,operacion:'lote',tipo:Tipo,id:IdPliego}, 
     success: function(response){ 
      respuestaphp=Ext.util.JSON.decode(response.responseText); 
      var cont2=0; 
      var row; 
      while(cont2<respuestaphp['data'].length){ 
       row=respuestaphp['data'][cont2]; 
       fila2.push(row['IdExpediente']); 
       fila2.push(row['Nro_Orden']); 
       fila2.push(row['Nombre_Lote']); 
       fila2.push(row['Baja']); 
       fila2.push(row['Cotiza']); 
       fila2.push(row['TotLicitacionsVat']); 
       fila2.push(row['TotOfertasVat']); 
       datoslicitproduct.push(fila2); 
       fila2=[]; 
       cont2++; 
      } 
     } 
    }); 
    cont++; 
} 
console.log(datoslicitproduct); 
} 

当我打电话的console.log(datoslicitproduct);最后它在控制台上看起来像这样: enter image description here

如果我尝试console.log(datoslicitproduct [0]);它说未定义,我不明白为什么。我想知道如何访问特定的位置。

回答

0

Ext.Ajax.request是异步的,这意味着它不会停止并等待请求的返回。所以你的console.log在请求返回之前调用。您必须在请求返回时调用的“成功”回调中执行此操作。

+0

好吧,我会试着在测试后说点什么。 – SensacionRC

+0

现在它工作完美,并且如我所愿。谢谢 – SensacionRC