Afficher des produits en fonction de la catégorie (Ajax-PHP)

Résolu/Fermé
warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015 - Modifié par warbeast1000 le 9/06/2015 à 17:45
warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015 - 11 juin 2015 à 17:10
Salutation chers confrères !

Aujourd'hui je m'adresse à vous dans l'espoir que vous m'aideriez à résoudre un problème qui est le suivant :


Je réalisa actuellement un site marchand, et plus précisement le panel admnistrateur en ce moment même. Mon problème, étant un ''jeune noob'' de l'AJAX, je n'arrive pas implémenté de solution viable afin d'afficher des produits de ma base en fonction de sa catégorie.


J'ai actuellement 2 tables qui doivent collaborer (produits, categories). La clé étrangère ''categD'' issus de la table categories est entrées dans produits et fonctionnel (lorsque j'appel categD de produits dans une liste déroulantes, ces dernières sortes.
Le fond du problème démarrer maintenant : je n'arrive pas à réaliser de fonction AJAX qui me permettrai les produits de la table produits en fonction de leur catégorie.
Je suis à l'arrêt :(
le bout de code concerné :

try{
    include('inc/cnx.inc.php');

    echo "<div class='categ'>";
    echo "<label>Catégorie : </label><[/contents/1068-sql-commande-select select] name='categD' class='categ' onchange='htmlData('ajaxcateg.php', 'ch='+this.value)'>";
    $req =$connexion->query("SELECT * FROM categories");
    while($donnees =$req->fetch()){
        echo "<option value=".$donnees['idD'].">".$donnees['categD']."</option>";
    }
    echo '</select><br /><br />';
    echo '</div>';
}
catch (PDOException $e){
 die("Source : ".$DSN." Erreur : ".$e->getMessage());
}


Je n'est absolument aucune idée de comment mettre en place mon module.
Vous allez me dire ''Google est ton ami'', mais pas cette fois-ci, j'ai essayé de mettre en place, des idées similaires a la mienne, mais je n'est pas compris, et réussie.

JE REMERCIE TOUT CEUX QUI VOUDRONT BIEN CE PENCHER SUR MON CAS !

Guillaume
A voir également:

21 réponses

warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015
Modifié par warbeast1000 le 11/06/2015 à 17:16
J'avais un problème d'espace ^^
Tout marche comme prévu !
Un énorme merci pour tout ce temps passé sur mon code, j'ai vraiment beaucoup appris aujourd'hui
MERCI JORDANE45

je poste le code pour ceux qui en aurait besoin
la partie HTML
<?php
        
 try{
         require_once('inc/cnx.inc.php');
         
         echo "<div class='categ'>";
         echo "<label>Catégorie : </label>
         <select name='categD' class='categ' onchange='getProduitsByCategorie(this.value);'>";
         $req =$connexion->query("SELECT * FROM categories");
         while($donnees =$req->fetch()){
                 echo "<option value=".$donnees['categD'].">".$donnees['categD']."</option>";
         }
         echo '</select><br /><br />';
         echo '</div>';
         
         echo "<div id='listeproduits'>";
        
         echo "</div>";
                           
         
        }
        catch (PDOException $e){
         die("Source : ".$DSN." Erreur : ".$e->getMessage());
        }


Le script Ajax (a mettre en haut de la page)
//----------------------------------------------------------//
// AJAX
//-----------------------------------------------------------//
  function getProduitsByCategorie(categD) {
        var urlAjx = "inc/ajaxcateg.inc.php";
        var data = {categD:categD};
        $.ajax({ 
                  url:      urlAjx,
                  dataType: "json",
                  type:     "POST",
                  data:     data,
                  async:    false,
                  success:  function(data){
                  //console.log(data);
                  $("#listeproduits").html(data); 
                   },
                   error:function(jqXHR, textStatus){
                   var error = formatErrorMessage(jqXHR, textStatus);
                   alert('error :' + error);
                   }
        });
  };


et le script PHP (qui est un fichier a part !)
<?php
//Script PHP AJAX
 require_once('cnx.inc.php');
//récupération des variables
$categorie= isset($_POST['categD']) ? $_POST['categD']: NULL;

$result = "";
if($categorie){
         $result .="<table class='modifprod'>";
         $sql = "SELECT * FROM produits WHERE categD = :categorie";                    
         $params = array(":categorie"=>$categorie);
         $reqprod = $connexion->prepare($sql);
         $reqprod->execute($params );    

          while($R = $reqprod->fetch()){
                   $result .="<tr><td>";
                   $result .="<br /><hr /><br /><h3 class='modifprod'       value=".$R['refP']."'>".$R['marqueP']."__".$R['modeleP']." </h3><br /><button class='modifprod' onclick='if(confirm(\"Voulez-vous modifier ce produit?\")){document.location = \"specprod.php?refP=".$R['refP']."\"}'>Modifier</button><br /><br /><br /><button class='modifprod' onclick='if(confirm(\"Voulez-vous supprimer ce produit?\")){document.location = \"inc/delprod.inc.php?refP=".$R['refP']."\"}'>Supprimer</button><br /><br /><br />";
                   $result .="</td></tr>";
            }
           $result .="</table>";
}
//retour de la fonction
echo json_encode($result);

?>


ENCORE MERCI A JORDANE45 POUR SON ENORME TRAVAIL!
RÉSOLU !
0