Foros del Web » Programando para Internet » PHP »

Problemas con scroll con php + mysql + jquery

Estas en el tema de Problemas con scroll con php + mysql + jquery en el foro de PHP en Foros del Web. Hola buenas noches :-D, quisiera que me ayudaran con lo siguiente estoy realizando una paginación con scroll, que al toparse al final del navegador me ...
  #1 (permalink)  
Antiguo 26/08/2013, 21:53
Avatar de Elvixx10  
Fecha de Ingreso: agosto-2012
Mensajes: 40
Antigüedad: 11 años, 7 meses
Puntos: 1
Información Problemas con scroll con php + mysql + jquery

Hola buenas noches :-D, quisiera que me ayudaran con lo siguiente estoy realizando una paginación con scroll, que al toparse al final del navegador me realice una nueva carga de datos esta información es traída de un archivo .php con la ayuda de jquery.


El primer archivo index.php realiza de forma correcta el script correspondiente este es el archivo:

Código PHP:
<html>
  <head>
    <title>Scroll</title>
    <style>        
      .mostrar{
        border:3px solid #f00;
        margin: 20px 0px 30px 50px;
        padding: 30px; 
        color: #fff;
        width: 400px;
        background-color: #111;
        border-radius: 6px;
        -webkit-border-radius: 6px;
        -moz-border-radius: 6px;
      }
       
       #vacio{
       display:none;
       border:3px solid #f00;
       margin: 20px 0px 30px 50px;
       padding: 30px; 
       color: #fff;
       width: 300px;
       opacity: 0.9;
       background-color: #111;
       color: #fff;
       border-radius: 6px;
       -webkit-border-radius: 6px;
       -moz-border-radius: 6px;
       }
    </style>
    
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script>
     $(document).ready(function() {
     
                function cargar_scroll() {
                    
                    var id = {
                    id : $(".mostrar:last").attr("id")
                    }                                                
                    
                    $.post("http://localhost/scroll/data.php", 
                           id, 
                           function(data) {                    
                           if (data != "") {
                            $(".mostrar:last").after(data);   
                            //after before
                            
                           }else{                    
                            $("#vacio").css('display','block').html('No hay mas datos para cargar');
                           }
                    });
                };
                
                
                $(window).scroll(function() {
                
                    if ($(window).scrollTop() == $(document).height() - $(window).height()) {
                        cargar_scroll();
                    }
                    
                    
                    /*if ($(window).scrollTop() + $(window).height() ==  $(document).height()) {
                        cargar_scroll();                     
                    }*/
                });
            });
    </script>
   </head>
   
   <body>
   
   <?php
   session_start
();  
   
$mysqli mysqli_connect('localhost''root''star') or die ("Error al conectar a la base de datos");
   
mysqli_select_db($mysqli'mvc');
   
   
$query "SELECT * FROM comentarios ORDER BY fecha ASC LIMIT 5";
   
   
$result mysqli_query($mysqli$query); 
    
   while(
$row mysqli_fetch_array($result)) {                    
   
   
$_SESSION["id"] = $row["idcomentarios"];
   
   
?>
   <div  id="<?php echo $row["idcomentarios"]; ?>" class="mostrar">
    <span style="float: right"><?php echo $row["idcomentarios"]; ?></span><br />    
    <span>Escrito por <?php echo $row["escrito"]; ?>&nbsp;&nbsp;&nbsp;<?php echo $row["comentarios"];?></span><br /><br />
    <span><?php  echo $row["escrito"];?></span><br />
   </div>
   <?php         
   

   
   
mysqli_free_result($result);
   
   
mysqli_close($mysqli);
   
   
?>
   
   <div id="vacio"></div>
   
   </body>
</html>
con la ayuda de jquery

Código:
  var id = {
                    id : $(".mostrar:last").attr("id")
                    }
obtengo el ultimo id correspondiente a la tabla comentarios para poder mandar con una variable de sesión el id y obtener la siguiente carga de datos con el archivo data:

Código PHP:
<html>
<head>
  <title>Elemetos del scroll</title> 
</head>
<body>
   <?php   
   $mysqli 
mysqli_connect('localhost''root''star') or die ("Error al conectar a la base de datos");   
   
mysqli_select_db($mysqli'mvc');
   
   
session_start(); 
   
$id $_SESSION["id"];
 
   
$query "SELECT * FROM comentarios WHERE idcomentarios < ".$id." ORDER BY fecha ASC LIMIT 5";
       
   
$result mysqli_query($mysqli$query);        
  
   while(
$row mysqli_fetch_array($result)) {              
   
   
?>
   <div id="<?php echo $row["idcomentarios"]; ?>" class="mostrar">
    <span style="float: right"><?php echo $row["idcomentarios"]; ?></span><br />    
    <span>Escrito por <?php echo $row["escrito"]; ?>&nbsp;&nbsp;&nbsp;<?php echo $row["comentarios"];?></span><br /><br />
    <span><?php  echo $row["escrito"];?></span><br />
   </div>
   <?php
         
   

   
   
mysqli_free_result($result);
   
   
mysqli_close($mysqli);   
   
?> 
   
</body>
</html>

El problema viene cuando quiero volver a cargar mas datos ya que lo que hace es volver a mostrar los mismo datos que mostré al realizar la primera carga con el archivo data.php


ejemplo index.php muestra lo siguiente

datos15
datos14
datos13
datos12
datos11

al realizar el scroll con la ventana obtengo el ultimo id y lo mando al archivo data.php y me muestra los siguiente datos algo como esto


datos10
datos9
datos8
datos7
datos6

al realizar de nuevo scroll obtengo el ultimo id osea el 6 y me debería de obtener los últimos datos osea:

datos5
datos4
datos3
datos2
datos1

pero lo que hace el volverme a repetir los mismos datos anteriores

datos10
datos9
datos8
datos7
datos6

no se es que parte este fallando ya que en la consola de firebug me muestra que obtengo los id correspondientes.

Etiquetas: jquery, mysql
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 03:41.