Champ dependant d'une liste deroulante

Eléphant du PHP | 162 Messages

21 août 2013, 00:01

bonsoir a tous .
voici ce que je veux .
j'ai une table destinateurs avec pour champ nom_dest et dest_Mail.
1. je récupère tous les noms dans une liste déroulante
2. a chaque fois que je choisi un nom de la liste déroulante automatiquement l'autre champ (champ texte) se rempli avec le mail de ce destinateurs.

j'ai essayé de m'inspirer de ce code mais je suis bloqué.
si quelqu'un pouvait bien m'aider.

voici le code :
<?php
include("connect.php");
?>
<!doctype html>
<html lang="fr">
        <head>
                <meta charset="UTF-8"/>
                <title>Formulaire dynamique</title>
        </head>
        <body>
          <form method="post" action="reception.php">
          
            <p>
              <select name="annee" id="annee" pattern="(premiere) | (deuxieme)" onchange='anneeChange();'>
                <option value="choisissez" selected disabled>-- choisissez --</option>              
                <option value="premiere">AUTRE</option>
               
                <?php
				$req="SELECT id_dest,nom_dest,email  FROM destinateurs ORDER BY nom_dest DESC";
				$res=mysql_query($req) or die("erreur dans la requête $req");
				while ($tab=mysql_fetch_assoc($res)){
				
			    echo "<option value='deuxième'>".$tab[nom_dest]."</option>";
                 }
				?>
              </select>
            </p>
            <div id="paragrapheSupplementaire">

             </div>
            <p>
              <input type="submit" value="-- OK --"/>
             </p>
          </form>
<script>
  function anneeChange(){
     var paragraphe = document.getElementById("paragrapheSupplementaire");
     paragraphe.innerHTML=document.getElementById("annee").value+" année.";
     if (document.getElementById("annee").value == "deuxième"){
        paragraphe.innerHTML+="<label>Orientation prévue pour l'année prochaine :</label>"
        +'<select name="orientation" id="orientation">'
        +'<option value="LP">LP</option>'
        +'<option value="master">master</option>'
        +"<option value=\"inge\">Ecole d'ingé</option>"
        +'<option value="boulot">Boulot</option>'
        +'<option value="autre">Autre</option>'
        +'</select>';
    
     }
  }
  anneeChange();
</script>
        </body>
</html>

Eléphanteau du PHP | 13 Messages

21 août 2013, 08:14

Bonjour,
En général, si tu souhaite rapidement avoir une solution à ton poblème, il faut le poser au bon endroit car c'est plus un problème javascript que PHP

Ce pendant pour résoudre ton problème, il te faut un tableau associatif php où les clés sont les noms et les valeurs l'email.
A la fin tu converti le tableau php en tableau js avec json_encode

et il ne te restera plus qu'a récupéré la valeur du select et l'utilisé comme clé de la ligne du tableau pour renvoyé la valeur

Eléphant du PHP | 162 Messages

21 août 2013, 09:11

merci de bien vouloir me repondre. vraiment je suis nouveau en javascript en plus je maitrise pas les tableau associatifs. alors je sais même pas par ou commencer .
donc si quelqu'un pouvait me donner un exemple afin que je puisse m'inspirer de ça . merci d 'avance

Eléphanteau du PHP | 13 Messages

21 août 2013, 11:25

ce ci devrait marcher

Code : Tout sélectionner

<?php include("connect.php"); ?> <!doctype html> <html lang="fr"> <head> <meta charset="UTF-8"/> <title>Formulaire dynamique</title> </head> <body> <form method="post" action="reception.php"> <p> <select name="annee" id="annee" onchange='anneeChange();'> <option value="choisissez" selected disabled>-- choisissez --</option> <option value="premiere">AUTRE</option> <?php $req="SELECT id_dest,nom_dest,email FROM destinateurs ORDER BY nom_dest DESC"; $res=mysql_query($req) or die("erreur dans la requête $req"); $dataarray = array(); while ($tab=mysql_fetch_assoc($res)){ $dataarray[$tab['nom_dest']]=$tab['email'] echo "<option value='".$tab['nom_dest']."'>".$tab['nom_dest']."</option>"; } ?> </select> </p> <div id="paragrapheSupplementaire"> <input type="text" name="fieldsemail" id="fieldsemail" value="" /> </div> <p> <input type="submit" value="-- OK --"/> </p> </form> <script> var dataarray = <?php echo json_encode($dataarray);?> function anneeChange(){ document.getElementById("fieldsemail").value=dataarray[document.getElementById("annee").value]; } </script> </body> </html>

Eléphant du PHP | 162 Messages

21 août 2013, 12:46

je vien de tester voici l'erreur que je reçois .
Parse error: syntax error, unexpected 'echo' (T_ECHO) in C:\wamp\www\TUTO LISTE LIEE 2\index.php on line 22 .

Eléphant du PHP | 162 Messages

21 août 2013, 12:57

j'ai pu corrigé l'erreur . il manquait un ; devant
 $dataarray[$tab['nom_dest']]=$tab['dest_Mail'];
. mais ça marche toujours pas . le champ deroulant reçois les données mais quand je choisis un nom rien ne se passe au niveau du champ texte

voici le code :
<?php
include("connect.php");
?>
<!doctype html>
<html lang="fr">
   <head>
      <meta charset="UTF-8"/>
      <title>Formulaire dynamique</title>
   </head>
   <body>
      <form method="post" action="reception.php">
         <p>
           <select name="annee" id="annee" onchange='anneeChange();'>
            <option value="choisissez" selected disabled>-- choisissez --</option>             
            <option value="premiere">AUTRE</option>
             <?php
               $req="SELECT id_dest,nom_dest,dest_Mail  FROM destinateurs ORDER BY nom_dest DESC";
               $res=mysql_query($req) or die("erreur dans la requête $req");
               $dataarray = array();
               while ($tab=mysql_fetch_assoc($res)){
                  $dataarray[$tab['nom_dest']]=$tab['dest_Mail'];
               echo "<option value='".$tab['nom_dest']."'>".$tab['nom_dest']."</option>";
               }
            ?>
         </select>
         </p>
         <div id="paragrapheSupplementaire">
            <input type="text" name="fieldsemail" id="fieldsemail" value="" />
         </div>
         <p>
           <input type="submit" value="-- OK --"/>
         </p>
      </form>
<script>
   var dataarray = <?php echo json_encode($dataarray);?>
  function anneeChange(){
     document.getElementById("fieldsemail").value=dataarray[document.getElementById("annee").value];
  }
</script>
   </body>
</html>

Eléphant du PHP | 162 Messages

21 août 2013, 13:22

j'arrive toujours pas .
voici la structure de ma table :
-- phpMyAdmin SQL Dump
-- version 4.0.4
-- http://www.phpmyadmin.net
--
-- Client: localhost
-- Généré le: Mer 21 Août 2013 à 09:21
-- Version du serveur: 5.6.12-log
-- Version de PHP: 5.4.16

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: `bddgescour`
--

-- --------------------------------------------------------

--
-- Structure de la table `destinateurs`
--

CREATE TABLE IF NOT EXISTS `destinateurs` (
`id_dest` int(11) NOT NULL AUTO_INCREMENT,
`nom_dest` varchar(150) NOT NULL,
`dest_Direct` varchar(80) NOT NULL,
`dest_Service` varchar(80) NOT NULL,
`dest_Contact` varchar(15) NOT NULL,
`dest_Mail` varchar(30) NOT NULL,
PRIMARY KEY (`id_dest`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;

--
-- Contenu de la table `destinateurs`
--

INSERT INTO `destinateurs` (`id_dest`, `nom_dest`, `dest_Direct`, `dest_Service`, `dest_Contact`, `dest_Mail`) VALUES
(1, 'COULIBALY Zana Souleymane', '', '', '', ''),
(2, 'ZAMA Isabelle', '', '', '', ''),
(3, 'TOURE KORONAN', '', '', '', ''),
(4, 'KOFFI ANGE', '', '', '', ''),
(5, 'SDIP/KONAN', '', '', '', ''),
(6, 'msi79', '', '', '', ''),
(7, 'isabelle', '', '', '', ''),
(8, 'admin', '', '', '', ''),
(9, 'FOFANA KARIM', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '45621236', '[email protected]'),
(10, 'YAO ANDEA', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '01458575', '[email protected]'),
(11, 'DIGBEU ARISTIDE', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '45655878', '[email protected]'),
(12, 'SANOGO ABDRAMANE', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '01458575', '[email protected]'),
(13, 'YEO AFFOUET', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '25789563', '[email protected]');
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Eléphanteau du PHP | 13 Messages

21 août 2013, 14:15

si ton site est en ligne peux-tu me passer l'url? Sinon ce qui reste est forcement un problème JS. le souci c'est que je ne connais plus vraiment le Javascript natif. je fais plus du Jquery. je peux te donner le code qui marche en Jquery.

Eléphant du PHP | 162 Messages

21 août 2013, 15:13

Mon site n'est pas encore en ligne . je fais mes teste en local

Eléphant du PHP | 162 Messages

21 août 2013, 18:05

bonsoir a tous . personne pour m'aider ? je bloque toujours .
voici ou j'en suis ;
[javascript]<?php
include("connect.php");
?>
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8"/>
<title>Formulaire dynamique</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1 ... "></script>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<form method="post" action="reception.php">
<p>
<select name="annee" id="annee" onchange='anneeChange();'>
<option value="choisissez" selected disabled>-- choisissez --</option>
<option value="premiere">AUTRE</option>
<?php
$req="SELECT id_dest,nom_dest,dest_Mail FROM destinateurs ORDER BY nom_dest DESC";
$res=mysql_query($req) or die("erreur dans la requête $req");
$dataarray = array();
while ($tab=mysql_fetch_assoc($res)){
$dataarray[$tab['nom_dest']]=$tab['dest_Mail'];
echo "<option value='".$tab['nom_dest']."'>".$tab['nom_dest']."</option>";
}
?>
</select>
</p>
<div id="paragrapheSupplementaire">
<input type="text" name="fieldsemail" id="fieldsemail" value="" />
</div>
<p>
<input type="submit" value="-- OK --"/>
</p>
</form>
<script>
var dataarray = <?php echo json_encode($dataarray);?>
function anneeChange(){
document.getElementById("fieldsemail").value=dataarray[document.getElementById("annee").value];
}
</script>

<a href="test1.php">TEST</a>
<a href="test2.php">TEST2</a>
</body>
</html>
[/javascript]