IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage de données après click sur liste déroulante [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut Affichage de données après click sur liste déroulante
    Bonsoir à tous,

    Je vais essayer d'etre le plus clair possible.
    J'ai deux table dans ma bdd. Une table style (num, nom...) et une table partenaire (num, nom...). Et un partenaire appartient à un style.
    J'affiche dans une liste déroulante mes styles.
    Je voudrais que lorsque je clique sur un style de ma liste déroulante, les partenaires de ce style apparaissent, je veux également que la liste déroulante apparaissent toujours, pour que sur un nouveau clique les nouveaux partenaires apparaissent.
    J'y arrive très bien lorsque je créer une nouvelle page pour chaque style mais je voudrais que ce soit la même page qui se charge peu importe le style choisi dans la liste déroulante.
    Le script suivant est la page où apparaît la liste déroulante pour la première fois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?							
    			include("config.php");
     
    			$requete ="select nom_style FROM style order by num_style;";
    			$resultat=mysql_query($requete);
    			echo'<select name="rubrique" onChange="self.location.href=this.value;">';
    			while($row2=mysql_fetch_row($resultat))
    				{
    					echo "<option value='essai.php'>$row2[0]</option>";					
    				}
    				echo "</select>";
    				/*include("choix.php");*/
    		?>
    le deuxième script est la page où je voudrais que les styles avec ses partenaires se chargent n'import quel click effectuer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?
     
    			include("config.php");
     
    			$requete ="select nom_style, url FROM style;";
    			$resultat=mysql_query($requete);
    			echo'<select name="rubrique" onChange="self.location.href=this.value;">';
    			while($row2=mysql_fetch_row($resultat))
    				{
    					echo "<option value='$row2[1]'>$row2[0]</option>";					
    				}
    				echo "</select>";
    		?> 
     
     <?
    	include("config.php");
    	$req ="SELECT image, nom_partenaire, url FROM partenaire where style='Tissus, papiers peints';";
    	$res=mysql_query($req);
    	$i=0;
     
    	while($row=mysql_fetch_row($res))
    	{
    	$i++;	
    		if($row[0]=="")
    		{
    			echo"
    			<tr align='right'>
    				<td><font face='Arial' size='2'><b><font color='#FFFFFF'>$row[1]</b></font></span></td>
    			<tr align='right'>
    				<td><a href=$row[2]><span class='Style2'>$row[2]</span></td>
    			</tr>
    			<tr>
    				<td><hr></td>				
    			</tr>";
    		}
    		else
    		{
    			echo"
    			<tr align='right'>
    				<td><a href=$row[2]><img src='$row[0]' width=200 height=150></td>
    			</tr>
    			<tr align='right'>
    				<td><font face='Arial' size='2'><b><font color='#FFFFFF'>$row[1]</b></font></span></td>
    			<tr align='right'>
    				<td><a href=$row[2]><span class='Style2'>$row[2]</span></td>
    			</tr>
    			<tr>
    				<td><hr></td>				
    			</tr>";			
    		}			
    	}
    ?>
    Mais si il est même possible de le faire à partir d'une seule page je suis preneur.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 224
    Points
    8 224
    Billets dans le blog
    17
    Par défaut
    Tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form action="cette_page.php" method="get">
        <select name="style">
            <?php
                /* Générer les <option>, éventuellement sélectionner le <option> d'un style soumis */
            ?>
        </select>
        <input type="submit" value="Afficher les partenaires du style sélectionné">
    </form>
    <?php if ( isset($_GET['style']) ) : ?>
        <!-- Afficher les partenaires ayant pour style $_GET['style'] -->
    <?php endif ?>
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    Ok mais ceci c'est pour avoir un bouton à côté de la liste déroulante. Moi je voudrais que çà se fasse sur le clic de la liste déroulante le rechargement de la page

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut un evenement
    la c'est pas un probleme. tu n'a pas forcement besoin de clicker sur un bouton pour envoyer un formulaire. aide toi de javascript.
    ya un evenement Onchange tu l'ajoute au niveau de ton select genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //attention a respecter la syntaxe car javascript est case sensitive
    <select name="balaba" onchange=" form1.submit()">
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  5. #5
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    Si tu regarde le script de mon formulaire tu peux voir que j'ai déjà un onChange.

  6. #6
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    ?
     
    			include("config.php");
     
    			$requete ="select nom_style FROM style order by num_style;";
    			$resultat=mysql_query($requete);
    			echo'<select name="rubrique" onChange="self.location.href=this.value;">';
    			while($row=mysql_fetch_row($resultat))
    				{
    					echo "<option value='liens_internet'>$row[0]</option>";									
    				}
    				echo "</select>";
     
    	$req ="SELECT image, nom_partenaire, url FROM partenaire where style='?';";
    	$res=mysql_query($req);
    	$i=0;
    	while($row2=mysql_fetch_row($res))
    	{
    	$i++;	
    		if($row2[0]=="")
    		{
    			echo"
    			<tr align='right'>
    				<td><font face='Arial' size='2'><b><font color='#FFFFFF'>$row2[1]</b></font></span></td>
    			<tr align='right'>
    				<td><a href=$row2[2]><span class='Style2'>$row2[2]</span></td>
    			</tr>
    			<tr>
    				<td><hr></td>				
    			</tr>";
    		}
    		else
    		{
    			echo"
    			<tr align='right'>
    				<td><a href=$row2[2]><img src='$row2[0]' width=200 height=150></td>
    			</tr>
    			<tr align='right'>
    				<td><font face='Arial' size='2'><b><font color='#FFFFFF'>$row2[1]</b></font></span></td>
    			<tr align='right'>
    				<td><a href=$row2[2]><span class='Style2'>$row2[2]</span></td>
    			</tr>
    			<tr>
    				<td><hr></td>				
    			</tr>";			
    		}			
    	}
    		?>
    La première partie est la sélection des rubriques que je met dans ma liste déroulante (ex : chaise, table...)
    La deuxième partie est l'affichage des données suivant le clic réalisé dans la liste déroulante. Dans ma 2ème requête il y a un point d'interrogation c'est parce que je ne sais pas quoi mettre. Normalement cela correspond à la donnée cliqué dans la liste déroulante pour qu'on affiche les données des partenaires relatives à la rrurique sélectionné.

  7. #7
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?
     
             include("config.php");
     
             $requete ="select nom_style FROM style order by num_style;";
             $resultat=mysql_query($requete);
             echo'<select name="rubrique" onChange="window.location.replace(\'liens_internet.php?style=\'+this.options[this.selectedIndex].value);">';
             while($row=mysql_fetch_row($resultat))
                {
                   echo "<option value='".$row[0]."'>$row[0]</option>";                           
                }
                echo "</select>";
     
       if(isset($_GET["style"])){
    	   $req ="SELECT image, nom_partenaire, url FROM partenaire where style='".$_GET["style"]."';";
    	   $res=mysql_query($req);
    	   $i=0;
    	   while($row2=mysql_fetch_row($res))
    	   {
    	   $i++;   
    	      if($row2[0]=="")
    	      {
    		 echo"
    		 <tr align='right'>
    		    <td><font face='Arial' size='2'><b><font color='#FFFFFF'>$row2[1]</b></font></span></td>
    		 <tr align='right'>
    		    <td><a href=$row2[2]><span class='Style2'>$row2[2]</span></td>
    		 </tr>
    		 <tr>
    		    <td><hr></td>            
    		 </tr>";
    	      }
    	      else
    	      {
    		 echo"
    		 <tr align='right'>
    		    <td><a href=$row2[2]><img src='$row2[0]' width=200 height=150></td>
    		 </tr>
    		 <tr align='right'>
    		    <td><font face='Arial' size='2'><b><font color='#FFFFFF'>$row2[1]</b></font></span></td>
    		 <tr align='right'>
    		    <td><a href=$row2[2]><span class='Style2'>$row2[2]</span></td>
    		 </tr>
    		 <tr>
    		    <td><hr></td>            
    		 </tr>";         
    	      }         
    	   }
       }
          ?>
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  8. #8
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 224
    Points
    8 224
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par leloup84
    Ok mais ceci c'est pour avoir un bouton à côté de la liste déroulante. Moi je voudrais que çà se fasse sur le clic de la liste déroulante le rechargement de la page
    JS ou pas ça n'a rien à voir, regarde plutôt le if( ) qui suit le <form>, l'essentiel de la réponse s'y trouve ;)
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/06/2010, 22h28
  2. Réponses: 0
    Dernier message: 20/06/2009, 09h12
  3. [CSS 2.1] background-img qui disparait sous IE8 après action sur liste déroulante
    Par N1bus dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 01/06/2009, 18h06
  4. Réponses: 3
    Dernier message: 28/03/2008, 16h51
  5. Réponses: 2
    Dernier message: 21/03/2006, 01h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo