Agrandir une LIMIT php avec javascript

benbouil95 Messages postés 65 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
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
A voir également:

2 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
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');
0
benbouil95 Messages postés 65 Statut Membre 2
 
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
0
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
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
0
benbouil95 Messages postés 65 Statut Membre 2
 
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
0
jordane45 Messages postés 40050 Statut Modérateur 4 757 > benbouil95 Messages postés 65 Statut Membre
 
Plus 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);

 
 
0