Agrandir une LIMIT php avec javascript

Bonjour,

J'ai actuellement sur mon site un système qui me permet d'afficher les 9 premiers produits grâce à :

$sql = $bdd->prepare('SELECT * FROM Produits WHERE verif=1 LIMIT 0, 9');

Je cherche à faire un bouton en dessous des 9 premiers produits, ou, quand l'utilisateur cliquerait dessus, ceci ajouterait 9 autres produits en plus (soit 18 produits affichés sur l’écran au final) et qu'à chaque fois qu'il clique, cela en rajoute 9.

Merci pour votre aide.

Cordialement,

Benjamin

2 réponses

  1. Contributeur
    bonjour,
    quel est ton soucis?
    tu peux obtenir les 9 suivants an faisant:
    $sql = $bdd->prepare('SELECT * FROM Produits WHERE verif=1 LIMIT 9, 9');

    , et ensuite:
    $sql = $bdd->prepare('SELECT * FROM Produits WHERE verif=1 LIMIT 18, 9');
    1. Bonjour,
      Merci pour ta réponse.
      Mon soucis est que j'aimerais avoir un bouton et le faire dynamiquement sans rechargement de la page. En gros je clique et une animation affiche petit à petit les 9 suivants.
      Cordialement
  2. Modérateur
    Bonjour,


    Mon soucis est que j'aimerais avoir un bouton et le faire dynamiquement sans rechargement de la page.

    Donc pour ça .. tu dois utiliser l' AJAX.

    Le principe donné par yg_be pour la partie "requête" reste valable ....
    Il ne te reste qu'à utiliser le javascript ( ou de préfénence le jquery...) pour aller chercher les données à afficher ... puis à générer l'affichage dans ta page.

    Tu trouveras sans mal sur le net de très nombreux exemple de jquery/ajax.
    Comme ici :
    https://forums.commentcamarche.net/forum/affich-33258760-remplir-un-formulaire-dynamiquement-en-fonction-d-une-combobox#2
    1. Bonjour,

      Merci pour votre réponse. J'ai déjà lu plein de site et essayer plein de chose mais rien n'a marché. N'avez vous pas un exemple plus simple que se que vous venez de m'envoyer car ça ne répond pas a mon soucis.

      Cordialement
    2. Modérateur
      @benbouil95Plus simple ??
      Ben ...

      Côté javascript tu auras une fonction appellée par ton bouton du style :
      function changepage(pdebu,limit ){
       var urlAjx ="tonfichierajaxphp.php";
       var data = {page:pdebu,limit:limit);
       $.ajax({ 
            type: "POST",
            url: urlAjx,
            data: data,
            async: async,
            dataType: "json",
            success: function(reponse){
              //ici tu code pour afficher les données
              // en attentdant, histoire de voir ce que ça retourne dans la console du navigateur
              // tu peux faire un :
              console.log(reponse);               
             },
            error:function(jqXHR, textStatus){
                    alert('error :' + jqXHR.responseText);
            }
           }); 
       }
       


      ton bouton html serait du genre :
      <button id="pageplus" onclick="changepage(1,18);">+</button>
      


      Et côté php un truc du genre :
       
       <?php 
      //affichage des erreurs PHP
      error_reporting(E_ALL);
      
      //connexion à la BDD (tu remplaces par TON fichier de connexion à la bdd... )
      require_once 'cnxBDD.php';
      
      
      //recuperation des variables :
      $page_deb = !empty($_POST['page']) ? $_POST['page'] : 1;
      $limit = !empty($_POST['limit ']) ? $_POST['limit '] : 9;
      
      $sql = "SELECT * 
              FROM Produits 
              WHERE verif = 1 
              LIMIT :page_deb, :limit ";
      $datas = (":page_deb"=>$page_deb , ":limit "=>$limit ); 
      
      try{
       $prep = $bdd->prepare($sql);
       $prep->execute($datas);
       $result = $prep->fetchAll(); //on stocke le resulatat dans un array
      }catch(Exception $e){
       echo "Erreur ! ".$e->getMessage();
      }
      
      //on renvoi les données au javascript
      echo json_encode($result);