JavaScript - Problema con scroll infinito

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 307 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con scroll infinito

Publicado por Mariguuan (3 intervenciones) el 09/06/2021 16:05:15
Llevo días intentando hacer un scroll infinito que vaya cargando un código HTML y PHP según deslices, pero no hay manera. Mire tutoriales de YouTube, busque códigos de scroll infinito en Google, conseguí uno propio que funcionaba pero no cargaba lo que quería, un código HTML y PHP, pregunte y me dijeron que necesitaba ajax, trate de realizarlo con ajax, me informe.... y nada. ¿Alguien me podría dar algún consejo, algún enlace donde expliquen bien como hacer uno bien, pasarme el código....? Cualquier cosa me vale. Gracias de antemano.

Por si necesitan, este es el código que quiero que se vaya cargando:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<div class= "articulo" id="articulo">
<article>
<?php $sql="SELECT*FROM publicaciones
        ORDER BY RAND() limit 1"; $result=mysqli_query($conn,$sql);
        while($mostrar=mysqli_fetch_array($result)){  $publicacion=$mostrar
        ['publicacion']; ?> <?php } ?>
<hgroup> <div id="user"
        onclick="location.href='Perfil.php'"><img src="Imagenes/Foto de perfil - copia.png"
        id="fotouser"> <h1 id="nombreuser">
<?php $sql="SELECT*FROM publicaciones WHERE publicacion= ".$publicacion."' ORDER BY RAND() limit 1"; $result=mysqli_query($conn, $sql); while($mostrar=mysqli_fetch_array($result)){  $autor= ucfirst($mostrar ['nombre']);?>
<?php echo $autor ?>
<?php } ?> </h1></button>
</div>
<h1 id="Tituloarticulo">Título del primer artículo</h1>
</hgroup>
<time datetime="08-02-2021">
        Publicado el 08-02-2021</time> <table>
<?php $result=mysqli_query($conn,$sql);
while($mostrar=mysqli_fetch_array($result)){  ?>
<tr>
<td>
<?php echo $mostrar['publicacion'] ?> </td>
</tr>
<?php } ?>
</table>
<footer>
<p>Comentarios (0) </p>
<button id="Comentarios"></button>
</footer>
</article>
</div>

Y aquí les dejo el primer código que he hice para el scroll( pero no funciona porque no llama a una función ajax):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//tiene mas contenido pero es irrelevante
<script>
    $(document).ready(function(){
        var count=0;
 
        $(document).scroll(function(){
            if($(document).scrollTop()+$(window).height()>=$(document).height())
            {
 
                count+=1;
 
                $("body").append( "//Este es el codigo que quiero que aparezca cuando deslices <?php
     include("includes/header3.php")?>
     <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <link rel="stylesheet" href="estilos4.css">
    <div class= "articulo" id="articulo">
    <article>
    <?php $sql="SELECT*FROM publicaciones ORDER BY RAND() limit 1";
        $result=mysqli_query($conn,$sql);
        while($mostrar=mysqli_fetch_array($result)){
        $publicacion=$mostrar['publicacion'];
        ?>
        <?php } ?>
        <hgroup>
        <div id="user" onclick="location.href='Perfil.php'"><img src="Imagenes/Foto de perfil - copia.png"
        id="fotouser">
            <h1 id="nombreuser">
        <?php $sql="SELECT*FROM publicaciones WHERE publicacion= '".$publicacion."' ORDER BY RAND()
        limit 1";
        $result=mysqli_query($conn, $sql);
        while($mostrar=mysqli_fetch_array($result)){
        $autor= ucfirst($mostrar['nombre']);?>
        <?php echo $autor ?>
        <?php } ?>
        </h1></button>
        </div>
        <h1 id="Tituloarticulo">Título del primer artículo</h1>
    </hgroup>
        <time datetime="08-02-2021"> Publicado el 08-02-2021</time>
        <table>
        <?php
        $result=mysqli_query($conn,$sql);
        while($mostrar=mysqli_fetch_array($result)){
        ?>
        <tr>
        <td><?php echo $mostrar['publicacion'] ?> </td>
        </tr>
        <?php
        }
        ?>
        </table>
        <footer>
            <p>Comentarios (0)</p>
            <button id="Comentarios"></button>
        </footer>
    </article>
    </div>");
            }
        });
    });
</script>

Y aqui les dejo el segundo código que intente pero que tampoco funciona:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//Este es el archivo llamado Tuits.php que se supone que es el que realiza la acción
<?php
require_once 'database2.php';
class Tuits extends Database{
    function _construct(){
}
    function getData($section){
    $query = $this->connect()->prepare('SELECT * FROM publicaciones limit :section, 2');
    $query->execute(['section'=>$section]);
    $res = [];
    $items = [];
    $n = $query->rowCount();
    if($n){
    while($row = $query->fetch(PDO::FETCH_ASSOC)){
        $item = Array(
        'publicacion'=>$row['publicacion'],
        'nombre'=>$row['nombre'],
        );
        array_push($items, $item);
    }
    array_push($res, Array('response'=>"200"));
    array_push($res, $items);
    array_push($res, Array('page'=>($section + $n)));
    return $res;
    }else{
    array_push($res, Array('response' => "400"));
    return $res;
    }
}
}
?>
//Esto es el archivo database2.php
<?php
class Database{
    private $dbhost   = '127.0.0.1';
    private $dbname   = 'crapping';
    private $username = 'root';
    private $password = '';
    private $charset  = 'utf8mb4';
 
    function connect(){
        try{
            $conexion = "mysql:host=" . $this->dbhost . ";dbname=" . $this->dbname . ";charset=" . $this->charset;
 
            $options = [
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_EMULATE_PREPARES => false
            ];
            $pdo = new PDO($conexion, $this->username, $this->password, $options);
            return $pdo;
        }catch(PDOException $e){
            print_r('Error de conexión: ' . $e->getMessage());
        }
    }
}
?>
//esto es donde se supone que debe aparecer el código ( está en otra página llamada pagina2.php, he omitido
todo lo anterior y lo posterior ya que es irrelevante):
        <div id="tuits">
        </div>
        <div id="more-tuits">
        </div>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder