Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/08/2013, 06:32
mixzplit
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Pregunta Carga de Datos con Scroll

Hola compañeros, saludos a todos.

Tengo un problema con la carga de datos con el scroll bar, lo que estoy haciendo basicamente es que cuando el scroll bar llegue al final me carga los datos siguiente de la consulta, como un paginado mas o menos, el problema que tengo es que al llegar al final de la pagina me esta haciendo 2 $post en vez de uno y esto me haciendo que el 2 $post solape el primero y se dejan de mostrar 10 registros, coloco aqui algo de mi codigo:

Aqui mi codifo Javascript, tengo una condicion que validad unos <SELECT>

Código Javascript:
Ver original
  1. $(window).scroll(function(){
  2.            if ($(window).scrollTop() == $(document).height() - $(window).height()){
  3.                 if($('#vendedorCuotas').val()!='null' && $('#ZonCuotas').val()!='null'){
  4.                    
  5.                       $('#_mensajesCarga').html('<div align="center"><img src="images/loading.gif"></div>');
  6.                  $.post("controlador/controladorReportes.php",{op: 'fil_vendedor_mas', codven: $('#vendedorCuotas').val()},
  7.                  function(data){
  8.                     //alert(data);
  9.                         if(data == ''){
  10.                             //alert('HERE');
  11.                           $('#_mensajesCarga').html('<div align="center">NO HAY MAS REGISTROS PARA MOSTRAR</div>');
  12.                         }else{         
  13.                         $('#_tabla_contenedor').append(data);
  14.                         $('#_mensajesCarga').html(''); 
  15.                         }
  16.  
  17.                       })
  18.                      
  19.                 }              
  20.           }
  21.       });

los datos que envio por POST los estoy recibiendo asi:
Código PHP:
Ver original
  1. if($_POST['op']=='fil_vendedor_mas'){
  2.  $cuoMas = cuotasZ($_POST['codven'],$_POST['op']);
  3.  include('../vistas/cuotaMasVista.php');
  4.  }

Y la funcion que ejecuta el SQL es esta:
Código PHP:
Ver original
  1. function cuotasZ($codigo,$opcion) {
  2.    if (!isset($_SESSION["cantidadcargadas"])){ $_SESSION["cantidadcargadas"]=0; }  
  3.     global $conexion;
  4.      
  5.     $query = "SELECT VEN_CODIGO, VEN_NOMBRE , CLI_CODIGO, CLI_NOMBRE, IFNULL(DET.ANTERI,0) AS ANTERI, IFNULL(DET.ACTUAL,0) AS ACTUAL,
  6.               IFNULL(ROUND((DET.ACTUAL/DET.ANTERI-1 )*100,2),0) AS PORCEN1 FROM dpvendedor
  7.              INNER JOIN dpclientes ON CLI_CODVEN=VEN_CODIGO
  8.              LEFT JOIN ( SELECT MOV_CODVEN AS CODVEN, MOV_CODCTA AS CODCTA, INV_GRUPO AS GRUPO,
  9.                      SUM(IF(YEAR(MOV_FECHA)=2012,MOV_TOTAL*MOV_CXUND*MOV_INVACT*IF(MOV_TIPDOC='FAV',1,-1),0)) AS ANTERI,
  10.                      SUM(IF(YEAR(MOV_FECHA)=2013,MOV_TOTAL*MOV_CXUND*MOV_INVACT*IF(MOV_TIPDOC='FAV',1,-1),0)) AS ACTUAL
  11.                      FROM dpmovinv IGNORE INDEX (DPMOVINV1)
  12.              LEFT JOIN dpinv IGNORE INDEX (DPINV2) ON MOV_CODIGO=INV_CODIGO
  13.              WHERE MOV_TIPDOC IN ('FAV','DEV','DPA') AND INV_GRUPO='000001' AND MONTH(MOV_FECHA)= 4
  14.              GROUP BY MOV_CODVEN, MOV_CODCTA )AS DET ON DET.CODVEN=VEN_CODIGO AND DET.CODCTA=CLI_CODIGO";
  15.                    
  16.    if($opcion=='fil_zona' || strlen($codigo)==3){                        
  17.    $query.=" WHERE (VEN_ZONA = '".$codigo."')";
  18.    }
  19.    if($opcion=='fil_vendedor' || strlen($codigo)==6){
  20.    $query.=" WHERE (VEN_CODIGO = '".$codigo."')";
  21.    }  
  22.    if($opcion=='fil_cliente'){
  23.    $query.=" WHERE (CLI_CODIGO = '".$codigo."')";
  24.    }
  25.     $query.=" GROUP BY VEN_CODIGO, CLI_CODIGO
  26.                  ORDER BY VEN_ZONA, VEN_CODIGO, DET.ACTUAL DESC";
  27.     if($opcion=='fil_zona_mas' || $opcion=='fil_vendedor_mas'){                  
  28.         $query.=" LIMIT ".$_SESSION["cantidadcargadas"].",10";
  29.     }else {    
  30.         $query.=" LIMIT 0,10";
  31.     }
  32.     #echo $query;
  33.     $result = $conexion->ejecutarQuery($query);
  34.     $_SESSION["cantidadcargadas"]+=10;
  35.     return $result;
  36.  
  37. }

De verdad no entiendo por que se estan haciendo 2 $post, esto lo evalue con FIREBUG, espero me haya explicado bien y puedan ayudarme

Saludos