2015-07-10 46 views
1

我正在調用Web服務並使用JSON.stringify來獲取查詢的不同行,但是當我嘗試將它放入複選框時,它表示Nombre Jugador: undefinedCorreo[object HTMLInputElement]當傳遞AJAX響應數據字段時,stringify()意外返回undefined

我的代碼:

function cargarJugadores2(){ 
    var req = $.ajax({ 
     url:'http://zz27.infoucrso.com/WSS/WSJugador.svc/cargarJugadores', 
     timeout : 10000, 
     dataType : "jsonp" 
    }); 

    req.success(function(datos) { 
     var nombre = JSON.stringify(datos.nombre); 
     alert(nombre); 
     ProcesarJugadores2(datos); 
    }); 

    req.error(function(){ 
     alert("No fue posible establecer conexión con el Web Service"); 
    }); 
} 

,第二種方法:

function ProcesarJugadores2(datos) { 
    var radiobutton = '<input type="radio" name="radio-choice-h-2" id="radio" onclick="escribir()"><label for="radio" id="label">' + 
     "</br>Nombre Jugador: " + this.nombre + " </br> Correo: " + this.correo + '</label>' 

    localStorage["correoSeleccionadoAmigo"] = this.correo; 

    $('#listaJugadores').append(radiobutton); 
    $('[type=radio]').checkboxradio().trigger('create'); 
    $('#listaJugadores').controlgroup().trigger('create'); 
} 

這是返回的JSON升ooks like:

[{ 
    "Activo": true, 
    "contrasenna": "1", 
    "correo": "[email protected]", 
    "nombre": "Alex" 
}, { 
    "A‌​ctivo": true, 
    "contrasenna": "1", 
    "correo": "[email protected]", 
    "nombre": "Maria" 
}, { 
    "Acti‌​vo": true, 
    "contrasenna": "1", 
    "correo": "[email protected]", 
    "nombre": "Pedro" 
}] 
+0

是什麼'DATOS的全部打印輸出中的所有項目執行功能'在成功回調? – 1252748

+0

[{「Activo」:true,「contrasenna」:「1」,「correo」:「[email protected]」,「nombre」:「Alex」},{「Activo」:true,「contrasenna」 1" , 「郵報」: 「[email protected]」, 「農佈雷」: 「瑪利亞」},{ 「ACTIVO」:真 「contrasenna」: 「1」, 「郵報」: 「[email protected]」 ,「nombre」:「Pedro」}] –

+2

在訪問'nombre'之前,你需要傳遞一個索引。即'datos [0] .nombre //「Alex」' – 1252748

回答

1

datos你得到的是一個對象數組。​​是數組內部對象的屬性。 爲了獲得一個特定的值,首先獲取數組值,然後查看對象。所以,你的代碼應該是

var nombre = datos[index].nombre; //index will be array index. 
alert(nombre); //no need to stringify nombre as you're doing array lookup. 

或者,如果您是直接存儲JSON值,那麼整個字符串化datos

1

這應該得到正確的輸出到ProcesarJugadores2功能:

function ProcesarJugadores2(datos) { 
    var radiobutton = '<input type="radio" name="radio-choice-h-2" id="radio" onclick="escribir()"><label for="radio" id="label">' + 
     "</br>Nombre Jugador: " + datos.nombre + " </br> Correo: " + datos.correo + '</label>' 

    localStorage["correoSeleccionadoAmigo"] = datos.correo; 

    $('#listaJugadores').append(radiobutton); 
    $('[type=radio]').checkboxradio().trigger('create'); 
    $('#listaJugadores').controlgroup().trigger('create'); 
} 

function cargarJugadores2(){ 
    var req = $.ajax({ 
     url:'http://zz27.infoucrso.com/WSS/WSJugador.svc/cargarJugadores', 
     timeout : 10000, 
     dataType : "jsonp" 
    }); 

    req.success(function(datos) { 
     datos.map(ProcesarJugadores2); 
    }); 

    req.error(function(){ 
     alert("No fue posible establecer conexión con el Web Service"); 
    }); 
} 

使用datos.map()您可以在「DATOS」陣列