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$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
if($('#vendedorCuotas').val()!='null' && $('#ZonCuotas').val()!='null'){
$('#_mensajesCarga').html('<div align="center"><img src="images/loading.gif"></div>');
$.post("controlador/controladorReportes.php",{op: 'fil_vendedor_mas', codven: $('#vendedorCuotas').val()},
function(data){
//alert(data);
if(data == ''){
//alert('HERE');
$('#_mensajesCarga').html('<div align="center">NO HAY MAS REGISTROS PARA MOSTRAR</div>');
}else{
$('#_tabla_contenedor').append(data);
$('#_mensajesCarga').html('');
}
})
}
}
});
los datos que envio por POST los estoy recibiendo asi:
Código PHP:
Ver originalif($_POST['op']=='fil_vendedor_mas'){
$cuoMas = cuotasZ($_POST['codven'],$_POST['op']);
include('../vistas/cuotaMasVista.php');
}
Y la funcion que ejecuta el SQL es esta:
Código PHP:
Ver originalfunction cuotasZ($codigo,$opcion) {
if (!isset($_SESSION["cantidadcargadas"])){ $_SESSION["cantidadcargadas"]=0; } global $conexion;
$query = "SELECT VEN_CODIGO, VEN_NOMBRE , CLI_CODIGO, CLI_NOMBRE, IFNULL(DET.ANTERI,0) AS ANTERI, IFNULL(DET.ACTUAL,0) AS ACTUAL,
IFNULL(ROUND((DET.ACTUAL/DET.ANTERI-1 )*100,2),0) AS PORCEN1 FROM dpvendedor
INNER JOIN dpclientes ON CLI_CODVEN=VEN_CODIGO
LEFT JOIN ( SELECT MOV_CODVEN AS CODVEN, MOV_CODCTA AS CODCTA, INV_GRUPO AS GRUPO,
SUM(IF(YEAR(MOV_FECHA)=2012,MOV_TOTAL*MOV_CXUND*MOV_INVACT*IF(MOV_TIPDOC='FAV',1,-1),0)) AS ANTERI,
SUM(IF(YEAR(MOV_FECHA)=2013,MOV_TOTAL*MOV_CXUND*MOV_INVACT*IF(MOV_TIPDOC='FAV',1,-1),0)) AS ACTUAL
FROM dpmovinv IGNORE INDEX (DPMOVINV1)
LEFT JOIN dpinv IGNORE INDEX (DPINV2) ON MOV_CODIGO=INV_CODIGO
WHERE MOV_TIPDOC IN ('FAV','DEV','DPA') AND INV_GRUPO='000001' AND MONTH(MOV_FECHA)= 4
GROUP BY MOV_CODVEN, MOV_CODCTA )AS DET ON DET.CODVEN=VEN_CODIGO AND DET.CODCTA=CLI_CODIGO";
if($opcion=='fil_zona' || strlen($codigo)==3){ $query.=" WHERE (VEN_ZONA = '".$codigo."')";
}
if($opcion=='fil_vendedor' || strlen($codigo)==6){ $query.=" WHERE (VEN_CODIGO = '".$codigo."')";
}
if($opcion=='fil_cliente'){
$query.=" WHERE (CLI_CODIGO = '".$codigo."')";
}
$query.=" GROUP BY VEN_CODIGO, CLI_CODIGO
ORDER BY VEN_ZONA, VEN_CODIGO, DET.ACTUAL DESC";
if($opcion=='fil_zona_mas' || $opcion=='fil_vendedor_mas'){
$query.=" LIMIT ".$_SESSION["cantidadcargadas"].",10";
}else {
$query.=" LIMIT 0,10";
}
#echo $query;
$result = $conexion->ejecutarQuery($query);
$_SESSION["cantidadcargadas"]+=10;
return $result;
}
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