Tengo un resultado codificado json como

{  
    "result":[  
        {  
            "CODE":"STC\/R\/935",
            "WAY":"In",
            "DATE":"2016-02-19",
            "TYPE":"Re-Entry",
            "TKTP":"NA",
            "TIME":"2016-02-23 17:52:37"
        },
        {  
            "CODE":"5\/105",
            "WAY":"In",
            "DATE":"2016-01-30",
            "TYPE":"Re-Entry",
            "TKTP":"NA",
            "TIME":"2016-02-23 17:52:37"
        },
        {  
            "CODE":"356",
            "WAY":"In",
            "DATE":"2016-02-06",
            "TYPE":"Re-Entry",
            "TKTP":"NA",
            "TIME":"2016-02-23 17:52:37"
        },
        {  
            "CODE":"FCC\/ETC\/01",
            "WAY":"In",
            "DATE":"2016-02-10",
            "TYPE":"Re-Entry",
            "TKTP":"NA",
            "TIME":"2016-02-23 17:52:37"
        },
        {  
            "CODE":"3\/739",
            "WAY":"In",
            "DATE":"2016-02-03",
            "TYPE":"Re-Entry",
            "TKTP":"NA",
            "TIME":"2016-02-23 17:52:37"
        }
    ]
}

Cuando intenté iterar a través de él en JavaScript, no se ejecuta. Espero que alguien ayude. Ya pasé un día completo buscando en Google.

function bringdata(){
    $.ajax({
        url:'report_entry.php',
        type:"POST",
        data:{nameV:$('#fq').val()},
        async: false,
        success: function(data){                
            $.each(data, function(i,post){
                $("#magix").append("<li>+post.CODE+</li>");
            });
        }
    });
}
0
Bineesh 12 may. 2016 a las 21:54

3 respuestas

La mejor respuesta

Arregla estas lineas

data = JSON.parse(data);
$.each(data.result, function(i,post){
    $("#magix").append("<li>"+post.CODE+"</li>");
});

O sin usar jquery $.each,

data = JSON.parse(data);
data.result.forEach(function(post){
    $("#magix").append("<li>"+post.CODE+"</li>");
});
0
Zohaib Ijaz 12 may. 2016 a las 21:20

Con la ayuda de @zohaib ijaz, podría corregirlo como:

function bringdata() {

  $.ajax({
    url: 'report_entry.php',
    type: "POST",
    data: {
      nameV: $('#fq').val()
    },
    async: false,
    success: function(data) {
      var divition = $('#magix');
      var bine = "bineesh";
      var count = 0;
      obj = JSON.parse(data);
      $.each(obj.result, function(i, post) {
        //alert("success");
        divition.append('<li>Name:' + obj.result[count].CODE + '</li>');
        count = count + 1;

      });
    }

  });
}
0
Bineesh 12 may. 2016 a las 21:20

No estás concatenando tus cadenas correctamente.

$("#magix").append("<li>" + post.CODE + "</li>");

Si no cierra las comillas correctamente, solo hará una cadena con + s.

Además, si sus datos coinciden con el JSON publicado, entonces debe acceder a la propiedad result de data para obtener su matriz.

$.each(data.result, function(i, post) {
  $("#magix").append("<li>" + post.CODE + "</li>");
});
1
Mike Cluck 12 may. 2016 a las 18:57