Récupération automatique des champs en php

Fermé
luciita - 14 juil. 2012 à 22:58
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 16 juil. 2012 à 19:50
Bonsoir,

j'ai un formulaire où on trouve une liste déroulante qui contient les éléments d'un champ d'une table ,je veux à partir d'un élément selectionné de la liste déroulante les autres champs du formulaire correspondant à cet élément selectionné apparaissent automatiquement.


j'ai une table : article qui contient des champs:numéro,type,marque
je veux en selectionnant le numéro de l'article à partir de la liste déroulante ,le type et la marque correspondant apparaissent automatiquement dans le formulaire

comment je peux faire ça ????
Merci
A voir également:

5 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
15 juil. 2012 à 12:36
Salut,

En version très simplifié, donc à adapter avec une base de données ça donne un truc du style :
<form action="#" method="POST">
<select name="id" onchange="javascript:submit(this)"> 
<option value="1" <?php if($_POST['id']=='1'){ echo "selected='selected'";}?>>1</option>
<option value="2" <?php if($_POST['id']=='2'){ echo "selected='selected'";}?>>2</option>
<option value="3" <?php if($_POST['id']=='3'){ echo "selected='selected'";}?>>3</option>
</select>
<?php
//à la sélection de la liste
if(isset($_POST['id'])){
	if($_POST['id']==1){
		$type = 'type 1';
		$marque = 'marque 1';
	}
	if($_POST['id']==2){
		$type = 'type 2';
		$marque = 'marque 2';
	}
	if($_POST['id']==3){
		$type = 'type 3';
		$marque = 'marque 3';
	}

	echo 'Type:<input type="text" name="type" value="'.$type.'">
Marque:<input type="text" name="marque" value="'.$marque.'">';
}
?>
</form>
0
merci pr ta réponse !!!


mais j'ai pas su l'appliquer avec ce que j'ai

voilà je vous montre mon code:
<section>
<form action="trait_transfert.php" method="post">
                      <fieldset>
                          <legend id="new"> Transfert d'un matériel</legend>
						  <p>
			          
                          <?php
                                     $connexion=mysql_connect('localhost','root',"") or die ("connexion impossible.");
                                     $db=mysql_select_db('stage',$connexion) or die ("base de donnée non accessible");
                               ?>
                             <form action="trait_transfert.php" method="post" enctype="multipart/form-data">
			                          Numéro de série :
			                             <select name="num" id="num">
                                          <?php
                                     $resultat=mysql_query("select num from article order by num") or die ("requête non exécutée");
                                     if (! $resultat) { echo "Erreur requete"; exit;} 
                                     while ($ligne=mysql_fetch_array($resultat))
                                     {
                                          ?>
                                 <option> <?php echo ''.$ligne['num'].'';?> </option>
                                      <?php
                                        }
										
								
                               ?>
										 </select>
										 
										

 <?php

    $_POST['num']=$ligne['num'];
	$num=$_POST['num'];
	
	$resultat2=mysql_query("select type,agence from article where num= '$num'") or die(mysql_error()) ;
	
	$ligne2=mysql_fetch_array($resultat2); ?>


  <p><label for="type">Type de matériel:</label> <input type="text" name="type" value="<?php echo  ($ligne2['type']);?>" id="type" required/></p>
										 
										 
									
<p><label for="agence">Agence d'origine: </label>  <input type="text" name="agence" id="agence" value="<?php echo ($ligne2['agence']);?>"  required/></p>




svp aidez moi !! je connais rien en javascript

merci
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
16 juil. 2012 à 14:15
Ce n'est pas du javascript, c'est du PHP. Le "onchange" permet juste de recharger la page à la sélection de la liste.

<form action="trait_transfert.php" method="post">
<fieldset>
<legend id="new">Transfert d'un matériel</legend>

Numéro de série :<select name="num" id="num" onchange="javascript:submit(this)"> 
<?php
//connexion
$connexion=mysql_connect('localhost','root',"") or die ("connexion impossible.");
$db=mysql_select_db('stage',$connexion) or die ("base de donnée non accessible");
//requête
$resultat=mysql_query("SELECT num FROM article ORDER BY num") or die ("requête non exécutée");
if (!$resultat) { echo "Erreur requete"; exit;} 
//boucle
while ($ligne=mysql_fetch_array($resultat))
{
	echo '<option value="'.$ligne['num'].'"';
	//si la variable POST existe et quelle est égal à $ligne['num'], on ré affiche la sélection
	if(isset($_POST['num']) && $_POST['num']==$ligne['num']){ echo "selected='selected'";}
	echo '>'.echo $ligne['num'].'</option>';
} 
?>
</select>	

<?php
//à la sélection de la liste réalisé par "onchange", on affiche le reste du formulaire avec les données qui correspondent
if(isset($_POST['num'])){
	$num=$_POST['num'];
	//requête
	$resultat2=mysql_query("SELECT type,agence FROM article WHERE num=$num") or die(mysql_error()) ;
	//boucle
	while ($ligne2=mysql_fetch_array($resultat2))
	{
		echo '<p><label for="type">Type de matériel:</label>
<input type="text" name="type" value="'.$ligne2['type'].'" id="type" required/></p>	
<p><label for="agence">Agence d\'origine: </label>
<input type="text" name="agence" id="agence" value="'.$ligne2['agence'].'"  required/></p>';
	}
}
	?>
</form>
0
merci pr votre aide

En fait , en éxécutant ton code , la page du formulaire apparaît sans les champs type et agence
et en selectionnant un numéro de la liste déroulante ils m'écrivent:

Notice: Undefined index: type in C:\wamp\www\projet\trait_transfert.php on line 66
Notice: Undefined index: agence in C:\wamp\www\projet\trait_transfert.php on line 67
Erreur : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'type' cannot be null



Je ne sais pas quoi faire :(
0

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

Posez votre question
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
16 juil. 2012 à 19:50
Les 2 notices indique que les variables "type" et "agence" n'existe pas. Quand à la dernière erreur..je bug!
Faites voir votre code.
0