Quiero empujar los Nombres de Campo en el valor de la opción y el resultado en el texto de un select. Se debe tener este aspecto:

<select id="ddl_fields">
    <option value="RoleId">e407d28a</option>
    <option value="RoleName">Sales</option>
</select>

Este es el objeto json devuelto de la base de datos:

"[{"RoleId":"e407d28a","RoleName":"Sales"}]"

Este es el código y lo tira hacia atrás de un resultado válido:

function getFields(){
        var the_id = $(".hid_ID").val();
        var jsonText = JSON.stringify({ id: the_id });
        $.ajax({
            type: "POST",
            url: "bc_Admin.aspx/getFields",
            data: jsonText,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                if (data.d != "0") {
                    var obj = $.parseJSON(data.d);
                     //what needs to change???
                    $.each(obj, function (index, value) {
                        $('#ddl_fields')
                        .append($("<option value=" + value.id_Role + ">" + value.RoleName + "</option>"));
                    });
                }
            } //end success
        });
    }

Similar a esta pregunta, pero necesitan un JQuery solución.
Cómo llegar/lista todos los nombres de campos de datos en JSON con ExtJS?

Gracias!

  • ¿cuál es la salida? ¿Recibe algún error en la consola?
  • value.id_Role o value.RoleId?
InformationsquelleAutor Rob | 2013-01-17

5 Comentarios

  1. 2

    Suponiendo que data.d es en el formato publicado obj es una matriz y desea recorrer el objeto en la matriz y no la propia matriz.

    $.each(obj[0], function (index, value) {
        $('#ddl_fields')
        .append($("<option value=" + index + ">" + value + "</option>"));
    });
    • que gran trabajo! Gracias!
  2. 2

    Usted tiene que iterar a través de las teclas del objeto, y el uso hasOwnProperty para asegurarse de que su clave de objeto y no de su prototipo.

    var key, keys = [];
    
    for (key in obj) {
      if (obj.hasOwnProperty(key))
        keys.push(key)
    }
    • Si yo alert(clave) puedo obtener 0.
    • Que porque usted es la prueba de una matriz y no un objeto.
  3. 0

    Acaba de cambiar

    $.each(obj, function (index, value) {

    a

    $.each(obj[0], function (index, value) {

    El problema es que devuelva una matriz en el json

  4. 0

    No estoy seguro si entiendo, pero aquí es lo que yo haría para conseguir lo que quieres (que me hizo también su código más simple):

    function getFields(the_id){
        $.ajax({
            type: "POST",
            url: "bc_Admin.aspx/getFields",
            data: { id : the_id },
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                for(var i = 0; i < data.length; i++){
                    console.log(i + ": " + data[i]);
                }
            },
            error : function(s , i , error){
                console.log(error);
            }
        });
    }
    • Luis XIV, pensé que murió en 1715, pero no importa, tu javascript bang hasta la fecha.
    • Estoy de vuelta del infierno sólo para jQuery 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here