Page 1 sur 1

Liste déroulante! NEED HELP !

Posté : 01 juin 2005, 18:25
par BaO
Bonjour,
Je suis un débutant en php (cela va faire une semaine que je travaille en PHP ).

J'ai une liste déroulante qui est alimenté par ma base.
Quand je selectionne un nom dans ma liste, je voudrais afficher les données de cette personne.
J'ai vu sur certains POST qu'on pouvais utilisé la fonction
onChange(); mais je ne sais pas comment crée mon script JS pr récuperer les données, ou l'id du nom selectionné.

Comment je pourrais faire??

MERCI d'avance.

Voici mon code :

<select name="nom_artiste">
<?
$SQL = "SELECT nom_artiste FROM artiste";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res))
{
echo "<option>".$val["nom_artiste"]."</option>\n";
}
?>
</select>

Posté : 01 juin 2005, 19:24
par Cyrano
Il en manque un bout dans la partie html : et l'attribut value de la balise option ? elle sert à quoi à ton avis ?

Posté : 01 juin 2005, 19:58
par genjikun
je ne sais pas ! :?

Posté : 01 juin 2005, 20:51
par Cyrano
Ok, donc tu ne débutes pas juste en php, le HTML est aussi un peu nouveau. Tu vas pas t'amuser.

Si tu veux récupérer quelque chose de ton formulaire, il faut que le contenu inscrit ou sélectionné dans le cas d'une liste soit identifié. Donc une balise option doit impérativement contenir un attribut value="" contenant la valeur que tu souhaites envoyer au traitement. Chaque balise option dans une liste aura en principe une valeur différente correspondant à ce qui est affiché.

Posté : 01 juin 2005, 21:01
par BFH
Je peux te donner un exemple tout fait t'aurais qu'a mettre le nom de tes champs à la place des miens mais tu doit attendre demain matin!

Sinon je te le dis vu que tu doit pas savoir : quand tu ecris du code utilise le bouton PHP situé au dessus de la zone de texte :
 ton code php !!
c'est plus facile comme ça pour les gens qui veulent lire ton post

Posté : 02 juin 2005, 08:37
par BFH
Tiens voila un truc qui fonctionne :
$query="SELECT * FROM ta_table WHERE tes_conditions";
$result=mysql_query($query);
?>
<table width="100%" border="0" cellspacing="0">
<tr><form method="get" action="Analyse2.php">	
<?/*Tout ce qui est dans le formulaire suivant sera envoyé à la page nommée Analyse2.php*/ ?>
<td rowspan="7">
<center><select name ="LI" size="20">
<?
while($row=mysql_fetch_assoc($result))
{
?>
<option value= "<?= $row['nom_champs_de_ta_table'];?>" >	
<?= $row["nom_champs_de_ta_table"]; ?>
</option><br>
<?
}
</select></center>
</td>	
</tr>
</form></table>
Voila je crois n'avoir rien oublié dans mon copié-collé, si t'as des questions n'hesite pas!

Posté : 02 juin 2005, 11:13
par Invité
je vous remerci !!

Voici mon code :
<HTML><HEAD><TITLE>Formulaire Artiste</TITLE>
</HEAD>
<BODY>

<?
include("connex.php");

$target = "upload/image/";
$target10 = "upload/media/";
?>


<center>
Formulaire ARTISTE
</center>
<br><br>
<table width=100% height=100%>
	<tr>
	 <td>
	
	  <form method="post" action="traitement_artiste2.php" enctype="multipart/form-data">
	  <input type="hidden" name="post" value="1"> 
        <table>

		
         <tr>
           <td>
		   <br>
		   <fieldset>
		    <legend>Artiste</legend>
             Sélectionner le nom de l'artiste : 
			<select name="nom_artiste" onChange="location.href='?nom_artiste='+this.options[this.selectedIndex].value">
			  <?
			    $SQL = "SELECT nom_artiste FROM artiste";
				$res = mysql_query($SQL);
				while($val=mysql_fetch_array($res)) 
				{
				echo "<option>".$val["nom_artiste"]."</option>\n";
				}
			  ?>
            </select>
		   </fieldset>
           </td>
         </tr>
		 <? echo $_GET["nom_artiste"]; ?>
		 <tr>
		  <td>
		  <br>
		   <fieldset>
		   <input type="hidden" name="posted" value="1">  
	         <legend>Envoi d'image</legend>
	         <p>
             <label for="photo">Sélectionner l'image : </label>
             <input type="file" name="photo">
             </p>
			 <p>
			 LISTE DES FICHIERS AJOUTES
			 <BR><TABLE border="1">
			 <tr>
				<TH>Nom</TH>
				<TH>Taille</TH>
				<TH>Date</TH>
			 </tr>
			 <? $dir = opendir('upload/image/');
				$SQL = "SELECT nom_artiste FROM artiste where nom_artiste like''";
				$res = mysql_query($SQL);
				while ($f = readdir($dir))
					if(is_file($target.$f)) 
					{
			 ?>
			 
			 
				<?

				   echo "<TR>";
				   echo "<TD>".$f."</TD>";
				   echo "<TD align=right>".filesize($target.$f)."octet</TD>";
				   echo "<TD>".date("d/m/Y H:i:s",filectime($target.$f))."</TD>";
				   echo "<TD><A href=supression.php?file=".$f.">Supprimer</a></TD>";
				   echo "</TR>";
				 

				?>
             <? 
			       }
                 closedir($dir); 
		     ?>
			 </TABLE>
			 </p>
		   </fieldset>
		</tr>
	
	
	     <tr>
           <td>
		   <br>
		   <fieldset>
		   <legend>Extrait de presse</legend>
		   Entrer l'extrait de pressse : <br>
           <textarea cols="100" rows="10" name="txt_extrait">Saisissez l'extrait de presse</textarea>
		   <br>
		   Entrer la source : <input type="text" name="txt_source">
		   </fieldset>
           </td>
         </tr>
		 
		 
         <tr>
           <td>
		   <br>
		   <fieldset>
		   <legend>Discographie</legend>
			Entrer la discographie : <br>
            <textarea cols="50" rows="5" name="txt_disco">Saisissez la discographie</textarea>
			</fieldset>
           </td>
         </tr>  

		 <tr>
		  <td>
		  <br>
		   <fieldset>
		   <input type="hidden" name="postemedia" value="2">  
	         <legend>Envoi de média</legend>
	         <p>
             <label for="media">Sélectionner un fichier audio ou vidéo : </label>
             <input type="file" name="media">
             </p>
			 <p>
			 LISTE DES FICHIERS AJOUTES
			 <BR><TABLE border="1">
			 <tr>
			  <TH>Nom</TH>
			  <TH>Taille</TH>
			  <TH>Date</TH>
			 </tr>
				
			 <? 
				$dir10 = opendir('upload/media/');
				$SQL10 = "SELECT nom_artiste FROM artiste";
				$res10 = mysql_query($SQL10);
				 while ($f10 = readdir($dir10))
					if(is_file($target10.$f10)) 
					{
			 ?>
			 
			 
			 <?
				   echo "<TR>";
				   echo "<TD>".$f10."</TD>";
				   echo "<TD align=right>".filesize($target10.$f10)."octet</TD>";
				   echo "<TD>".date("d/m/Y H:i:s",filectime($target10.$f10))."</TD>";
				   echo "<TD><A href=supression2.php?file=".$f10.">Supprimer</a></TD>";
				   echo "</TR>";
			 ?>

             <? 
			        }
                 closedir($dir10); 
		     ?>
			 </TABLE>
			 </p>
		   </fieldset>
		  </td> 
		</tr>
		<TR>
		 <TD>
		  <BR><center><input type="submit" value="Ajouter" /></center>
		 <TD>   
        </TR>
        </table>
    </form>
</td></tr></table>

</BODY></HTML>
[/php]

Posté : 02 juin 2005, 12:00
par BFH
Je crois qu'il y a un problème dans ton code :
while($val=mysql_fetch_array($res)) 
{ 
 echo "<option>".$val["nom_artiste"]."</option>\n"; 
} 
il faudrait :
while($val=mysql_fetch_array($res)) 
{ 
?>
<option value="<?=$val['nom_artiste']?>"><?=$val['nom_artiste'] ;?>
</option>;  
<?
} 

Sinon quand tu choisis un artiste et que tu valide le formulaire tu ne retourne pas son nom! (ce qui est passablement dommage)

Posté : 02 juin 2005, 14:40
par Invité
merci pour la correction,
je voudrais savoir comment je pourais faire ceci toujours avec la liste déroulante:

quand je clique sur l'entreprise Y, j'aimerai afficher l'adresse(ou autre donnée ) de l'entreprise Y, quand je clique sur l'entreprise Z,affichier l'adresse(ou autre donnée) de l'entreprise Z...etc


MERCI D'avance

Posté : 02 juin 2005, 14:46
par BFH
Tu le veux sur la même page ou bien sur la page suivante?

J'annonce tout de suite si tu veux le truc sur la même page je crois que c'est pas du code php qu'il te faut de plus moi je sais pas faire.
par contre si tu veux l'adresse sur la page suivante ya pas de problèmes! :wink:

Posté : 02 juin 2005, 15:01
par genjikun
OK !
j'aurai voulu sur la même page, mais je voudrais bien ta solution sur une autre page !

MERCI

Posté : 02 juin 2005, 15:32
par BFH
<table border="0" width=100%">
<tr><form method="get" action="Analyse2.php"><?/*Tout ce qui est dans le formulaire suivant sera envoyé à la page nommée Analyse2.php*/ ?>
<td rowspan="7">
<center><select name ="ENTREPRISE" size="20"> //ici c'est important !
<?
$query="SELECT * FROM Table_Entreprise";
$result=mysql_query($query);				
while($row=mysql_fetch_assoc($result))		
{	
?>
<option value= "<?= $row[' ID_Entreprise];?>" ><?= $row["Nom_Entreprise"];?></option><br>
<?
}
?>
</select></center>
</tr>
</table>

ça c'est ta page.
Maintenant la page Analyse2.php
if(isset($_GET["ENTREPRISE"]))
{
$ENTREPRISE=$_GET["ENTREPRISE"];
}

$query="SELECT Ce_que_tu_veux FROM Table_Entreprise WHERE ID_Entreprise='".$ENTREPRISE."';
$result=mysql_query($query);
$row=mysql_fetch_assoc($result);

echo $row ['Champs_Adresse']
Voila, je crois n'avoir rien oublié test quand même

Posté : 02 juin 2005, 15:39
par genjikun
merci je test ca!!