I can not load a JSON on a select

1

I appear undefined repeatedly in a select. I charge it this way:

function listarcategorias(){
    accion="listadocat";
    $.ajax({
	  
            type: "POST",
            url: "../gestionweb/includes/php/getcategoria.php",
            data: {"accion":accion}, 
            

            error: function(){
                alert("error petición ajax");
            },
            success: function(data){
                
       console.log(data);
               for (var i = 0; i < data.length; i++) {
                
        
                var newRow ="<option id="+data[i].idcategoria+">"+data[i].categoria+"</option>";
                  
                $(newRow).appendTo("#cat");                 
       
    
               
            }
           
        }
});}

So I have the select in html:

<label class="col-sm-1 control-label">CATEGORIA</label><select id="cat"></select>

And the console.log returns the array well:

[{"idcategoria":"1","categoria":"Fiambre"},{"idcategoria":"2","categoria":"Quesos"},{"idcategoria":"3","categoria":"general"},{"idcategoria":"4","categoria":"construccion en seco"}]

Any help?

    
asked by Caruso 14.09.2018 в 11:41
source

1 answer

1

Missing an important configuration of $.ajax when working with JSON

dataType: 'json'

Source: link

PS: Or as @Pablo Lozano says, you can decode it within the success with a JSON.parse()

    
answered by 14.09.2018 / 11:53
source