Foros del Web » Programando para Internet » PHP » CodeIgniter »

Recorrer array con objetos json de una consulta

Estas en el tema de Recorrer array con objetos json de una consulta en el foro de CodeIgniter en Foros del Web. Buenos días, estoy teniendo problemas para recorrer un array con objetos json de una consulta mysql. Vista: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original $. ...
  #1 (permalink)  
Antiguo 24/08/2015, 03:35
 
Fecha de Ingreso: mayo-2013
Mensajes: 22
Antigüedad: 10 años, 11 meses
Puntos: 0
Recorrer array con objetos json de una consulta

Buenos días,

estoy teniendo problemas para recorrer un array con objetos json de una consulta mysql.

Vista:

Código Javascript:
Ver original
  1. $.ajax(
  2.                 {
  3.                     type: 'POST',
  4.                     url: '<?php echo base_url().'admin_controllers/ingresos_controllers/insertar_ingresos_controller/'.'cargar_ingresos_contacto';?>',
  5.                     data: {info: id_contacto_seleccionado},
  6.                     success: function (data3)
  7.                     {  
  8.                         alert(data3);
  9.                         alert(data3.length);
  10.                        
  11.                         for (var i = 0; i < data3.length; i++) {
  12.                         var object = data3[i];
  13.                         for (property in object) {
  14.                             var value = object[property];
  15.                             alert(property + "=" + value); // This alerts "id=1", "created=2010-03-19", etc..
  16.                         }
  17.                     }
  18.                        
  19.                         /*$.each(data3, function(i, object) {
  20.                             alert('entra');
  21.                             //$.each(object, function(property, value) {
  22.                                 //alert(property + "=" + value);
  23.                             //});
  24.                         });*/
  25.                         alert('despues');
  26.                        
  27.                     }
  28.                 });

Controlador:

Código PHP:
Ver original
  1. function cargar_ingresos_contacto()
  2.     {
  3.         $ingresos = '';
  4.         if($this->input->is_ajax_request() && $this->input->post('info'))
  5.         {
  6.             //$abuscar contiene el id del contacto
  7.             $abuscar = $this->security->xss_clean($this->input->post('info'));
  8.            
  9.            
  10.             //Comprobamos si el contacto tiene ingresos
  11.             if($this->ingresos_model->tiene_ingresos($abuscar)){
  12.                 $ingresos = $this->ingresos_model->cargar_ingresos($abuscar);
  13.                
  14.             }
  15.            
  16.            
  17.         }
  18.        
  19.         echo json_encode($ingresos);
  20.        
  21.     }

Modelo:

Código PHP:
Ver original
  1. function cargar_ingresos($id){
  2.         $this -> db -> select('*');
  3.         $this -> db -> from('ingresos');
  4.         $this -> db -> where('id_contacto', $id);      
  5.        
  6.         $record_set = $this -> db -> get();
  7.        
  8.         return $record_set->result();
  9.     }

En la vista cuando imprimo data3 obtengo lo siguiente:



[URL="http://www.subirimagenes.com/privadas-dudacodig-2325952.html"]Ver Grande[/URL]

<a href="http://www.subirimagenes.com/privadas-dudacodig-2325952.html">Ver grande</a>

El array de objetos json no se esta construyendo correctamente ya que data3.length=1874. La idea seria tener un array de 6 posiciones y en cada posicion un objeto json con una fila del resultado de la consulta.

Cualquier ayuda es bienvenida.

Gracias de antemano.

Última edición por inovaweb; 24/08/2015 a las 04:13
  #2 (permalink)  
Antiguo 24/08/2015, 23:11
 
Fecha de Ingreso: septiembre-2013
Ubicación: Madrid
Mensajes: 59
Antigüedad: 10 años, 6 meses
Puntos: 6
Respuesta: Recorrer array con objetos json de una consulta

Hola inovaweb,

El problema que tienes es debido a que al no decirle a Ajax que esperas que los resultados sean en JSON él los toma como texto plano.

Te faltaría el datatype: 'json', así:
Código PHP:
Ver original
  1. $.ajax(
  2.                 {
  3.                     type: 'POST',
  4.                     datatype: 'json',
  5.                     url: '<?php echo base_url().'admin_controllers/ingresos_controllers/insertar_ingresos_controller/'.'cargar_ingresos_contacto';?>',
  6.                     data: {info: id_contacto_seleccionado},
  7.                     success: function (data3)
  8.                     {  
  9.                         alert(data3);
  10.                         alert(data3.length);
  11.                        
  12.                         for (var i = 0; i < data3.length; i++) {
  13.                         var object = data3[i];
  14.                         for (property in object) {
  15.                             var value = object[property];
  16.                             alert(property + "=" + value); // This alerts "id=1", "created=2010-03-19", etc..
  17.                         }
  18.                     }
  19.                        
  20.                         /*$.each(data3, function(i, object) {
  21.                             alert('entra');
  22.                             //$.each(object, function(property, value) {
  23.                                 //alert(property + "=" + value);
  24.                             //});
  25.                         });*/
  26.                         alert('despues');
  27.                        
  28.                     }
  29.                 });

Espero que te sirva, si no, avísame.

Un abrazo

Etiquetas: json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:39.