Foros del Web » Programando para Internet » Javascript »

contador registros ajax

Estas en el tema de contador registros ajax en el foro de Javascript en Foros del Web. Hola gente, tengo la siguiente duda: Tengo un método en mi controlador que va insertarndo registros en una base de datos a partir de un ...
  #1 (permalink)  
Antiguo 17/01/2013, 08:44
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
contador registros ajax

Hola gente,
tengo la siguiente duda: Tengo un método en mi controlador que va insertarndo registros en una base de datos a partir de un arreglo de datos de esta forma:
Código PHP:
Ver original
  1. foreach ($list_import as $dat) {
  2.             //valido que no este cargado previamente el producto
  3.             if ($this->validarRepetido($dat['url'])) {
  4.                 $this->db->trans_begin();
  5.                 //seteo los datos del producto
  6.                 $info['id'] = '';
  7.                 $desc = '';
  8.                 if($dat['username']!=''){
  9.                     $info['username'] = $dat['username'];
  10.                 }
  11.                 else{
  12.                     $info['username'] = 'Anónimo';
  13.                 }
  14.                 $info['category_id'] = $import_data[0]->category_id;
  15.                 $info['name'] = $dat['name'];
  16.                 if (is_array($dat['description'])) {
  17.                     for ($i = 0; $i < count($dat['description']); $i++) {
  18.                         if ($dat['description'] != '') {
  19.                             $desc .= $dat['description'][$i];
  20.                         }
  21.                     }
  22.                     $info['description'] = $desc;
  23.                 } else {
  24.                     $info['description'] = $dat['description'];
  25.                 }
  26.  
  27.                 $info['price'] = $dat['price'];
  28.  
  29.                 $info['status'] = 0;
  30.                 $info['stock'] = NULL;
  31.                 $info['approved'] = 0;
  32.                 if (@$dat['source'] != '') {
  33.                     $info['source'] = $dat['source'];
  34.                 } else {
  35.                     $info['source'] = 'alamaula';
  36.                 }
  37.  
  38.                 $info['url'] = $dat['url'];
  39.                 $info['ubicacion'] = $dat['ubicacion'];
  40.  
  41.                 $fecha = $this->fecha($dat['created_date']);
  42.  
  43.                 $info['created_date'] = $fecha['created'];
  44.                 $info['expiration_date'] = $fecha['expired'];
  45.                 $info['external_id'] = $dat['id'];
  46.  
  47.                 if($dat['images']){
  48.                     $dat['images'] = explode(',',$dat['images']);
  49.                 }
  50.                 $info['modified_date'] = date('Y-m-d H:i:s');
  51.                 $info['import_id'] = $id_import;
  52.  
  53.                 //guardo el producto
  54.                 $result = $this->product->save($info);
  55.  
  56.                 if (is_numeric($result)) {
  57.                     $info['id'] = $result;
  58.                     $data['completos'][] = $info;
  59.                     //$this->firephp->log('guardo el producto: url ' . $info['url']);
  60.                     $id_prod = $result;
  61.                     if (count($dat['images']) > 0) {
  62.                         $this->importImages($dat['images'],$info['id'],$import_data['0']->folder_images);
  63.                     }
  64.  
  65.                     //actualizo el estado del registro en la tabla temporal
  66.                     $datos['id'] = $dat['id'];
  67.                     $datos['imported'] = 1;
  68.                     $this->product_temp->save($datos);
  69.  
  70.                     $this->db->trans_complete();
  71.                     if ($this->db->trans_status() === FALSE) {
  72.                         $this->db->trans_rollback();
  73.                         $data['msj'] = "no se realizo la transaccion";
  74.                     } else {
  75.                         $this->db->trans_commit();
  76.                     }
  77.                 } else {
  78.                     $this->db->trans_rollback();
  79.                     $data['incompletos'][] = $info;
  80.                 }
  81.                 $x++;
  82.             }
  83.         }

bien lo que necisto hacer (y no logro encontrarle la forma) es que cada vez que se inserta un nuevo registro pueda mostrar por ajax a la vista la cantidad insertada es decir que en el html me salga algo asi:
X registros de 10000
donde X es la cantidad de que fueron insertados correctamente.
Ya tengo la llamada a ajax al método que es asi:
Código Javascript:
Ver original
  1. $(function() {
  2.         $('.btn-info').click(function(event){
  3.             event.preventDefault();
  4.             var link = '';
  5.             link = $(this).attr('href');
  6.             $(this).button('loading');
  7.            //alert(link);
  8.             $.ajax({
  9.                 type: 'GET',
  10.                 url: link,
  11.                 success: function(data){
  12.                     $(this).button('completado');
  13.                     $(location).attr('href', '<?php echo base_url('admin/tools');?>');
  14.                 },
  15.                 error: function(data){
  16.                     $(this).removeClass('btn-info');
  17.                     $(this).addClass('btn-warning');
  18.                     $(this).button('hubo un error');
  19.                 },
  20.                 complete: function() {
  21.                     $(this).button('reset');
  22.                 }
  23.             });
  24.         });
  25.     });
Pero esta lo que hace es que una vez terminado el ajax redirecciona al index de mi aplicaicon.
Alguien tiene idea si se puede hacer lo que quiero.
Desde ya muchas gracias!
  #2 (permalink)  
Antiguo 17/01/2013, 09:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 61
Antigüedad: 15 años
Puntos: 3
Respuesta: contador registros ajax

necesitas cambiar esta
$(location).attr('href', '<?php echo base_url('admin/tools');?>');

por una que asignes el contenido de la respuesta con un innerHtml o con un apend
__________________
Pelearé hasta el último segundo y mi epitafio será:
No estoy de acuerdo.
Aplicaciones web gratis aplicaciones para cfd y cfdi
Gerente de Desarollo Protecno
  #3 (permalink)  
Antiguo 17/01/2013, 09:13
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: contador registros ajax

Cita:
Iniciado por elmaspicudo Ver Mensaje
necesitas cambiar esta
$(location).attr('href', '<?php echo base_url('admin/tools');?>');

por una que asignes el contenido de la respuesta con un innerHtml o con un apend
claro pero en ese caso me devolvera el total completo y yo quiero que me vaya mostrando uno por uno los que se cargaron bien o si se cargaron mal onda:
1 registro guardado de 10000
2 registro guardado de 10000
3 registro guardado de 10000
3 registro guardado de 10000 - 1 registro guardado mal
(obvio este mensaje se muestra en una sola linea sin mostrar el texto anterior)
  #4 (permalink)  
Antiguo 17/01/2013, 10:03
 
Fecha de Ingreso: mayo-2009
Mensajes: 61
Antigüedad: 15 años
Puntos: 3
Respuesta: contador registros ajax

en este caso tienes de ddeves modificar tu funcion

cuando insertes un registro deves de imprimir o guardar en una variable y despues concatenar el resultado

si el registro se guardo muestras su numero y ejecutas una consulta para ver su numero(o llevas un contador) y colocas el estatus bien o mal

usando listas
<li>cadena</li> resultado de tu funcion

html
<ul id="unul">
<ul>

cuando termine el ajax

$('·unul').append(data);
__________________
Pelearé hasta el último segundo y mi epitafio será:
No estoy de acuerdo.
Aplicaciones web gratis aplicaciones para cfd y cfdi
Gerente de Desarollo Protecno

Etiquetas: ajax, contador, html, php, registros, tabla
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 10:28.