Récupération automatique des champs en php

luciita -  
tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   -
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

5 réponses

  1. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    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
  2. luciita
     
    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
  3. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    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
  4. luciita
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    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