Formulaire

Résolu
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018 - 14 juil. 2018 à 14:38
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 19 juil. 2018 à 12:07
Bonjour les amis j'ai besoin de votre aide
je veux créer un formulaire dont l'un des inputs comporte une liste de donnés que je dois récupérer dans une autre table déjà remplir dans la base de donnée

3 réponses

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
14 juil. 2018 à 14:47
Bonjour,

Tu veux récupérer ces données au moment ou la page s'affiche ou bien après le click sur un bouton ... ou... autrement ???
Qu'as tu commencé à coder ?
Quel souci EXACT rencontres tu ?

0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
14 juil. 2018 à 14:53
OUi au moment ou la page s'affiche et je pourrai choisir celle que je veux
0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
14 juil. 2018 à 15:09
je veux enregistrer la table médicin dont le slr est
( idmed,nommed, prenommed, mailmed, #codehopita,#codeser)
les tables Hopital(codehopita, Nomhop, adresshop) et Servive(codeser, libelser) sont déjà enregistré et pour l'enregistrement des médecin je veux qu'on choisir l'hopital et le service
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
14 juil. 2018 à 19:08
Et tu n'as pas répondu à mon autre question : Qu'as tu commencé à coder ???

Sachant que là... il semble que tu ne veuilles que faire une simple requête SQL ( SELECT) et boucler sur son résultat pour le mettre dans une liste déroulante html
0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
16 juil. 2018 à 19:53
oui j'ai commencer à coder mais je ne sais pas comment faire pour afficher les informations dans l'input comme je le veux
0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
Modifié le 16 juil. 2018 à 20:47
voici le code que j'ai eu à écris
<!DOCTYPE html>
<html>
<head>
 <title>inscription</title>
</head>
<body>
 <form action="essaie.php" method="post">
  <fieldset>
   Inscrition des médecins <br/><br/>
   <label for="hop">Hopital</label>
   <input type="text" name="codehopita" id="hop"><br/><br/>
   <label for="oop">Service</label>
   <input type="text" name="codeser" id="oop"><br/><br/>
   <label for="hp">Nom</label>
   <input type="text" name="nommed" id="hp"><br/><br/>
   <label for="ph">Prenom</label>
   <input type="text" name="prenommed" id="ph"><br/><br/>
   <label for="lh">Email</label>
   <input type="email" name="mailmed" id="lh"><br/><br/>
   <input type="submit" name="submit" value="Enregistrer">
<!-- les données de la table hopital étant déjà enregistrer dans la table hôpital et ceux de service dans service et j'aimerais que si je clique sur l'input dont le name est codehopita que les informations de la table hopital s'affiche et que je puisse choisir-->

  </fieldset>
 </form>
 <?php 
   $connexion=new PDO("mysql:host=localhost;dbname=pgrdvdm","root","");
           $connexion->setAttribute(PDO :: ATTR_ERRMODE,PDO ::ERRMODE_EXCEPTION);
 if (isset($_POST['submit'])) {
          $codehopita=htmlentities(trim($_POST['codehopita']));
          $codeser=htmlentities(trim($_POST['codeser']));
          $nommed=htmlentities(trim($_POST['nommed']));
          $prenommed=htmlentities(trim($_POST['prenommed']));
          $mailmed=htmlentities(trim($_POST['mailmed']));
         if ($codehopita&&$codeser&&$nommed&&$prenommed&&$mailmed) {
         
            $insert=$connexion->prepare("INSERT INTO medecin1(nommed,codeser,prenommed,codehopita,mailmed) VALUES(?,?,?,?,?)");
          $insert->execute(array($nommed,$codeser,$prenommed,$codehopita,$mailmed)); 
   
          echo '<h4> Enregistrement effectuer avec succès !! Cliquez <a href="inscrirelabo.class.php">ici</a> pour d\'autre enregistrement</h4>';

                  } else echo "les champs doivent être saisir";
              }

  ?>

</body>
</html>
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
16 juil. 2018 à 21:01
Essaye ça :
 <?php 
 //Affichage des erreurs PHP
 error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion propre à la bdd en PDO
try{
  $bdd =new PDO('mysql:host=localhost; dbname=pgrdvdm; charset=utf8', 'root', '');
  // Activation des erreurs PDO
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
  die('Erreur : ' . $e->getMessage());
}
  
  
//récupération PROPRE des variables AVANT de les utiliser
 $codehopita = !empty($_POST['codehopita']) ? (trim($_POST['codehopita'])) : "";
 $codeser = !empty($_POST['codeser']) ? (trim($_POST['codeser'])) : "";
 $nommed = !empty($_POST['nommed']) ? (trim($_POST['nommed'])) : "";
 $prenommed = !empty($_POST['prenommed']) ? (trim($_POST['prenommed'])) : "";
 $mailmed = !empty($_POST['mailmed']) ? (trim($_POST['mailmed'])) : "";

 if (isset($_POST['submit'])) {
  if ($codehopita&&$codeser&&$nommed&&$prenommed&&$mailmed) {
  
    //preparation de la requete 
    $sql = "INSERT INTO medecin1(nommed,codeser,prenommed,codehopita,mailmed) VALUES(?,?,?,?,?)"
    $datas = array($nommed,$codeser,$prenommed,$codehopita,$mailmed);

    //Execution de la requete
    try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute($datas) ;
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       echo " Les datas : " ;
      print_r($datas);
    }
    echo '<h4> Enregistrement effectué avec succès !! Cliquez <a href="inscrirelabo.class.php">ici</a> pour d\'autres enregistrements</h4>';
  } else {
    echo "les champs doivent être saisis";
  }
 }
 
 //liste des hopitaux
 $sql = "SELECT code FROM hopital";
 $datas = NULL;
//Execution de la requete
  try{
    $requete = $bdd -> prepare($sql) ;
    $requete->execute($datas) ;
    $arr_Hopital = $requete->fetchAll(); // on stocke le resultat de la requete dans un array
  }catch(Exception $e){
    // en cas d'erreur :
     echo " Erreur ! ".$e->getMessage();
     echo " Les datas : " ;
    print_r($datas);
  }
 
 

?>

<!DOCTYPE html>
<html>
<head>
 <title>inscription</title>
</head>
<body>
 <form action="essaie.php" method="post">
  <fieldset>
   Inscrition des médecins <br/><br/>
   <label for="hop">Hopital</label>
   <select name="codehopita">
    <option>Selectionnez un hopital</option>
    <?php
     if(!empty($arr_Hopital)){
       //on boucle sur l'array pour générer les OPTION du <SELECT>
       foreach ($arr_Hopital as $hop){
        $code_hop = $hop['code'];
        echo "<option value='$code_hop'>$code_hop</option>";
       }
     }
    ?>
   </select>
 
   <label for="oop">Service</label>
   <input type="text" name="codeser" id="oop" value="<?php echo $codeser ;?>"><br/><br/>
   <label for="hp">Nom</label>
   <input type="text" name="nommed" id="hp" value="<?php echo $nommed ;?>"><br/><br/>
   <label for="ph">Prenom</label>
   <input type="text" name="prenommed" id="ph" value="<?php echo $prenommed ;?>"><br/><br/>
   <label for="lh">Email</label>
   <input type="email" name="mailmed" id="lh" value="<?php echo $mailmed ;?>"><br/><br/>
   <input type="submit" name="submit" value="Enregistrer">
  <!-- 
      les données de la table hopital étant déjà enregistées dans la table hôpital 
      et ceux de service dans service et j'aimerais que si je clique sur l'input dont le name est codehopita 
      que les informations de la table hopital s'affichent et que je puisse choisir
   -->
  </fieldset>
 </form>
</body>
</html>

Bien entendu.. ne connaissant pas la structure de ta table hopital.. j'ai du improviser...
Je te laisse faire les modifications nécessaires.

NB: Quand tu postes du code sur le forum, merci de le faire en utilisant les balises de code (et en y précisant le langage afin d'avoir la coloration syntaxique.)
J'ai édité ton message pour les mettre....
Merci d'y penser la prochaine fois.

NB² : Pour faire des listes.. il faut utiliser la balise html <select>. Tu trouveras la documentation necessaire sur le net sans aucune difficulté.

NB3 : Avant de poursuivre dans tes dev.. je t'invite à appliquer les consignes données dans ces deux liens :
https://www.commentcamarche.com/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://www.commentcamarche.com/faq/46512-pdo-gerer-les-erreurs
0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
16 juil. 2018 à 21:23
Merci j'essaie voir
0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
16 juil. 2018 à 21:46
j'ai essaie mais cela me et une erreur de syntaxe à la ligne 31 le message d'erreur est
" ( ! ) Parse error: syntax error, unexpected '$datas' (T_VARIABLE) in C:\wamp\"
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
16 juil. 2018 à 22:04
Manque un point-virgule ligne 30
0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
16 juil. 2018 à 22:17
Merci beaucoup mon grand ça a marché
0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
16 juil. 2018 à 22:17
tu es un 10
0
Rejoignez-nous