Ext.Ajax.request变量

时间:2015-06-10 11:09:00

标签: javascript php ajax extjs

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

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]);它说未定义,我不明白为什么。我想知道如何访问特定职位。

1 个答案:

答案 0 :(得分:0)

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