Affichage apres une liste lié

baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011 - 16 mai 2011 à 16:44
baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011 - 20 mai 2011 à 10:25
bonjour tout le monde

voila j ai un gros soucis et j aimerai bien enfin pouvoir le resoudre,jeprecise que je suis debutant

j ai un select1 qui lui me donne des categories et j affiche dynamiquement dans un frame le resultat
mon select1 met a jour automatique mon select2 et qui affiche en valeur les marques dispo de la categorie choisie

bon jusque la ca va

mon select2 sert a trié par marque
mais maintenant je souhaite pouvoir afficher dynamiquement quand je clik dans le select2 et ca j arrive pas

ma premiere fonction je l ai repiqué de mes cours donc bete copier coller et remplacement des valeurs

mais je suis incapable d en faire une

c est pour ce la que je demande de l aide

voici deja mon code actuel

fonction pour la mise a jour du select2 ajax:


function MAJ_marque(Nsouscategorie)
{
//declaration d'une variable
var xmlhttp;

//test si une categorie a été choisi
if (Nsouscategorie.length==0)
{
document.getElementById("liste_marques").innerHTML="";
return;
}
// test le type de navigateur pour créer l'objet adapté
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

// appel et exécution d'une fonction permettant la mise a jour dynamique
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//remplisage de la zone dynamique marque avec les resultats trouvés en base de données
document.getElementById("liste_marques").innerHTML=xmlhttp.responseText;
}
}



mon php:


//traitement maj du select marque
if(isset($_GET['num']))

{



// si on reçois un parametre num c'est que on veux mettre a jour la liste des marques

//sélection des marques qui utilisent la categorie reçu en parametre num

$requete = "SELECT DISTINCT Nmarque FROM Nproduct
WHERE Nsouscategorie ='".$_GET['num']."'" ;



// execution de la requete et recuperation les resultats dans une variable

$resultats = mysql_query($requete) ;

//construire la chaine de marques a afficher


//commencement de la liste déroulante des marques

$res = " ";

$res=$res."choisissez une marque";

while($tempo = mysql_fetch_assoc($resultats) )
{

//répétition des marques trouvées
$res = $res ."".$tempo['Nmarque']."";

}

//fin de la liste déroulante
$res = $res ."";


echo $res;



}

//traitement pour la selection d une categorie
if(isset($_POST['CATEGORIE']))

{


//création un nouvel objet tbs
$tbs = new clsTinyButStrong;

//modèle html dynamique à utiliser
$tbs -> LoadTemplate("cat.html");

//création de la requete
$requete = "SELECT* ,round((Nnet_ttc * 1.396),2) as net FROM Nproduct
where Nsouscategorie='".$_POST['CATEGORIE']."'";

//execute la requete,recupere les resultats et fusionne avec le modele html
$tbs -> MergeBlock('blk',$connexion,$requete);

//affiche le fichier html
$tbs -> Show();

}
//traitement du trie par marque des categories
if(isset($_GET['marque']))
{


//création un nouvel objet tbs
$tbs = new clsTinyButStrong;

//modèle html dynamique à utiliser
$tbs -> LoadTemplate("cat.html");


//création de la requete
$requete = "SELECT* ,round((Nnet_ttc * 1.396),2) as net FROM Nproduct
where Nsouscategorie='".$_GET['CATEGORIE']."'
and Nmarque='".$_GET['marque']."'";

//execute la requete,recupere les resultats et fusionne avec le modele html
$tbs -> MergeBlock('blk',$connexion,$requete);

//affiche le fichier html
$tbs -> Show();


}



mon html:









Choisissez une catégorie

ACCESSOIRE DIVERS

Pile
Tapis souris

AUDIO
Carte son
Haut-Parleur


voila j espere avoir été precis dans mon explication et surtout qu on puisse resoudre mon soucis

merci d avance

32 réponses

baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011
19 mai 2011 à 12:41
1er Code:
C'est quoi cette instruction dans le vide ?

Code Javascript : document.getElementById("sel1");


ne comprenant pas tout sur le domaine j ai ecris ainsi c est pour recuperer ma valeur du select1

j ai mis mes alert

sur le 1 er j ai une fenetre qui s ouvre avec juste ca
dedans
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


et l autre j ai ca
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="X-UA-Compatible" content="IE=8"/>
<title></title>
<link href="style.css" rel="stylesheet" type="text/css">

<style type="text/css">
<!--
#Dannonce #toptitres tbody #contenutitres2 td {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 11px;
color: #000;
text-align: center;
font-weight: bold;
}
#Dannonce #titre thead tr td h2 {
color: #030;
}
#Dannonce #toptitres {
font-size: 14px;
}


-->
</style>
</head>











</html>



en faite ca m affiche la page vide il me semble ou le tableau est censé s afficher
0
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
19 mai 2011 à 13:30
document.getElementById("sel1"); 


Tu l'affectes à rien du tout, la référence à l'objet dont l'ID est sel1.
Sur php je ne sais pas, mais en asp il y a Response.Clear qui permet de vider la génération précédente (Response.Write == echo), il doit y avoir l'equivalent en php, et fais le au début de ta fonction php avant de faire des echo
0
baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011
19 mai 2011 à 13:38
ben la je l ai carrement enlevé et j obtiens le meme resulat d alert que la seconde fonction
0
baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011
19 mai 2011 à 14:13
finalement non meme viré j ai pareil les memes alert

mais pour ma fonction trie je comprend pas pourquoi ca me dit undefined
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
19 mai 2011 à 15:04
Tu as bien remis le &marque= ?
La fonction php appelé c'est laquelle ?
On peut la voir en entier ?
0
baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011
19 mai 2011 à 15:22
 include("TinyButStrong/tbs_class_php5.php") ;
 include("connect.php") ;
 

      //traitement maj du select marque
 if(isset($_GET['num']))

       {
        
         
       
       // si on reçois un parametre num c'est que on veux mettre a jour la liste des marques
       
       //sélection des marques qui utilisent la categorie reçu en parametre num
       
          $requete = "SELECT DISTINCT Nmarque FROM Nproduct
                   WHERE 	Nsouscategorie ='".$_GET['num']."'" ;
                   
                  
                   
         // execution de la requete et recuperation les resultats dans une variable
         
         $resultats = mysql_query($requete) ;
         
         //construire la chaine de marques a afficher
        
         
         //commencement de la liste déroulante des marques
         
        $res = " <select id="sel2" name="marque" onchange="Trie(this.value)">";
                      
        $res=$res."<option value=>choisissez une marque</option>";
        
         while($tempo = mysql_fetch_assoc($resultats) )
              {
                      
                //répétition des marques trouvées
    			       $res = $res ."<option value=".$tempo['Nsouscategorie'].">".$tempo['Nmarque']."</option>";
             
              }
             
         //fin de la liste déroulante
        $res = $res ."</select>";
         
   
     	echo $res;  
    
       
 
 }   
   
           //traitement pour la selection d une categorie
        	 if(isset($_GET['CATEGORIE']))
        	 
        	 {
        	  
        
                                    //création un nouvel objet tbs
                                    $tbs = new clsTinyButStrong;
                                                
                                    //modèle html dynamique à utiliser
                                    $tbs -> LoadTemplate("cat.html"); 
            
                                    //création de la requete
                                   $requete = "SELECT* ,round((Nnet_ttc * 1.396),2) as net FROM Nproduct
                                    where Nsouscategorie='".$_GET['CATEGORIE']."'";
         
                             //execute la requete,recupere les resultats et fusionne avec le modele html
                                    $tbs -> MergeBlock('blk',$connexion,$requete);
                                              
                                    //affiche le fichier html
                                    $tbs -> Show(); 
                            
               }
          //traitement du trie par marque des categories
      if(isset($_GET['marque']))
     
        	 {
        	     
                                    //création un nouvel objet tbs
                                    $tbs = new clsTinyButStrong;
                                                
                                    //modèle html dynamique à utiliser
                                    $tbs -> LoadTemplate("cat.html");
                                     
                                                                  
                                    //création de la requete
                                    $requete = "SELECT* ,round((Nnet_ttc * 1.396),2) as net FROM Nproduct
                                    where  Nsouscategorie='".$_GET['CATEGORIE']."'
                                    and Nmarque='".$_GET['marque']."'";

                                    //execute la requete,recupere les resultats et fusionne avec le modele html
                                    $tbs -> MergeBlock('blk',$connexion,$requete);
                                              
                                    //affiche le fichier html
                                    $tbs -> Show();                        
                                    
                                  
                            
          }
      
      







voila mon fichier php entier
0
baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011
19 mai 2011 à 15:24
seul ma fonction MAJ_marque est operationnel

fonction sub pour CATEGORIE
fonction MAJ_marque appel num
fonction trie pour marque
0
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
19 mai 2011 à 16:54
C'est la seul où tu as un echo $res; si je ne m'abuse. donc tu dois avoir quelque chose dans le responseText.
0
baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011
19 mai 2011 à 16:58
ben ca me met a jour mon select2 ca c est bon ca fonctionne

c est les deux autres mon souci

fonction sub pour CATEGORIE
fonction trie pour marque
0
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
20 mai 2011 à 09:06
T'es sur que tbs -> Show(); ça marche ?
A priori si une marche, les autres doivent marcher aussi
0
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
20 mai 2011 à 10:00
Sinon quand tu as des erreurs, il va renvoyer un status different de 200. Donc tu peux l'afficher et voir ce que c'est pour peut être cerné le probleme.
Et statusText affiche le message associé au status.
0
baddevil Messages postés 18 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 20 mai 2011
20 mai 2011 à 10:25
oui le tbs show marque tres bien si je met submit();MAJ_marque(this.value) dans mon onchange du premier select j ai l affichage nikel dans mon iframe+ la mise a jour de mon select2

je voulais essayer de faire une autre fonction que le submit par defaut mais a la rigueur je m en fou si je le laisse mais je ne sais pas faire la deuxieme fonction pour trié par marque
0
Rejoignez-nous