IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création d'un formulaire dynamique


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut Création d'un formulaire dynamique
    Bonjour à tous ,
    Je viens à vous pour avoir quelques conseil car je suis débutante et je ne pense pas que mon problème soit possible en PHP
    J'ai actuellement un formulaire qui récupère depuis une BDD mySQL des données pour fournir les champs personnes et catégorie


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <!DOCTYPE html>
    <html >
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
      <body>
     
        <form class='form-inline' method="post" action="">
          <div class="form-group">
     
            <p >
              <label >Numéro Dossier </label> :
     
              <input  type="text" name="numDoss" />
            </p>
     
            <p >
              <label>Adresse destinataire</label> :
              <input type="mail" name="adrDest" />
            </p>
     
            <p>
              <label>Catégorie</label> :
              <select onchange="salut(this.value)" name="categorie">
                <option value="0">Choisir une catégorie</option>
                  <?php
                    $cats = $managerCat->getList();
                    foreach ($cats as $cat) 
                    {
                      echo "<option value='".$cat->getId()."'>".$cat->getLibelle()."</option>" ;
                    }
                  ?>
              </select>
            </p>
     
            <p>
              <label>Sujet </label> :
              <input type="text" name="sujet" />
            </p>
     
            <p>
              <label> Corps du message </label> </br>
              <textarea name="corps" ></textarea>
            </p>
     
            <p>
              <select name="pers" >
                <?php $pers = $managerPer->getList(); ?>
                  <option value="0">Choisir une personne</option>
                    <?php
                      $pers = $managerPer->getList();
                      foreach ($pers as $per)
                       {
                          echo "<option value='".$per->getId()."'>".$per->getNom()."</option>" ;
                      }                   
                    ?>
              </select>
            </p>
     
            <p>
              <input type="submit" class='btn btn-default' value="Envoyer" name = "Envoyer">
            </p>
          </div>
        </form>
     
     
      </body>
    </html>
    Mon problème est le suivant : j'aimerai lorsque que le je sélectionne une catégorie dans le formulaire que la valeur du message de cette catégorie s'insère dans le corps du message.

    La table catégorie contient : id , libelle, message

    Et je ne vois pas trop quel langage utilisé pour le faire résoudre le problème
    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que ce n'est pas plutôt a posteri, dans le traitement du formulaire, qu'il faut gérer ça.
    Quel serait l'interêt pour l'utilisateur que l'élément qu'il vient de choisir se repete en dessous ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    ce n'est pas le libelle de la catégorie qui va s'afficher dans le corps mais le message de cette catégorie

    Par exemple si dans ma liste je selectionne "coucou" en catégorie ça va m'afficher dans message " Bonjour vous avez choisie la catégorie coucou"
    Ce message est stocké dans la BDD dans la table categorie
    Je ne sais pas si je suis claire dans ce que je veux dire

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Yop,

    C'est grossomerdo ce que tu as déjà fais.

    Tu as ton objet managerCat avec tes fonctions getList() ou autre.
    Pourquoi ne pas faire une fonction getContent(optionSélectionné) qui récupère dans ta BDD le contenu lié à la sélection faite au préalable?

    Tu le stock dans une variable, et tu display?
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    euh je fais ma fonction en php, js ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Bin, logiquement PHP? Enfin je vois pas autrement.

    Peux-tu fournir ta fonction getList()? Elle doit appriori suivre le même modèle
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    Peux-tu fournir ta fonction getList()? Elle doit appriori suivre le même modèle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       public function getList()
      {
        $cat = [];
     
        $q = $this->db->prepare('SELECT * FROM categorie ');
        $q->execute();
     
        while ($donnees = $q->fetch(PDO::FETCH_ASSOC))
        {
          $cat[] = new Categorie($donnees['cat_id'], $donnees['cat_libelle'], $donnees['cat_message']);
        }
     
        return $cat;
      }

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Bin voilà.

    En gros, tu créés une autre fonction, qui prend en paramètre la sélection de l'utilisateur.

    Et ta requête sera quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $q = $this->db->prepare('SELECT message FROM categorie where libelle = '".$selectionUtilisateur."'');
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    Ok, ça à l'air simple quand tu le dis ,
    Je vais essayer alors ... ^^

  10. #10
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    A la vue de ce que tu as déjà fais, ça l'est... Enfin, c'est pas beaucoup plus compliqué. Essaie déjà une première ébauche et revient au besoin
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    Oui c'est ce que je vais faire, je vais essayer de voir comment faire pour le moment toute seule
    EDIT :Mais je ne comprend pas que ce soit possible avec du PHP, j'aurai pourtant cru que c'est seulement possible en JS ou AJAX ...

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Les 3 sont possibles :
    - PHP avec rafraichissement de la page
    - Javascript pur mais c'est moche
    - Ajax (Javascript va chercher les valeurs sur le serveur).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Citation Envoyé par nadgeul Voir le message
    EDIT :Mais je ne comprend pas que ce soit possible avec du PHP, j'aurai pourtant cru que c'est seulement possible en JS ou AJAX ...
    Pourquoi? Tu en as déjà fais une, pourquoi pas deux?
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  14. #14
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    Ah d'accord je ne savais pas,
    Je vais essayer de faire tout en php pour le moment même si il y a un rafraichissement de la page ( qui j'espère ne sera pas trop long..)

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    J'ai fais ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     public function afficheMessage($var){
     
     
        $q = $this->db->prepare("SELECT cat_message FROM categorie where cat_id = ".$var);
        $q->execute ; 
     
     
      }
    Mais je ne comprend pas d'ou le $var je peux le récuperer en fait et comment afficher le message ..
    Faut que la fonction me retourne quelque chose ?

  16. #16
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Tu récupères ton $var, depuis la sélection de ta catégorie.

    Pour pas brûler les étapes, récupères déjà cette valeur. Une fois que tu l'as récupérer, envoie là à cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message= $managerCat->afficheMessage(libelle);
    Ta fonction est censé alors te récupérer le message correspondant au libellé puisque tu fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $q = $this->db->prepare("SELECT cat_message FROM categorie where cat_id = ".$var);
    Je ne suis pas sur cela dit que ce soit ton cat_id que tu récupères?

    j'aimerai lorsque que le je sélectionne une catégorie dans le formulaire que la valeur du message de cette catégorie s'insère dans le corps du message.
    Tu devrais plutôt récupérer cette fameuse catégorie qui je suppose, est dans ta table le champ libellé.

    Et donc du coup donnerais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $q = $this->db->prepare("SELECT cat_message FROM categorie where cat_libelle = ".$var);
    Qu'on me corrige si je me trompe...
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  17. #17
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    Tu récupères ton $var, depuis la sélection de ta catégorie.

    Pour pas brûler les étapes, récupères déjà cette valeur. Une fois que tu l'as récupérer, envoie là à cette fonction

    Je la récupère depuis la page de mon formulaire ?
    EDIT : Comment ? Je ne vois pas du tout comment je peux savoir la catégorie que j'ai pris sans valider le formulaire en fait
    Je m'y perd , je sais même plus comment faire ...


    J'ai changé ma requête en fonction du libellé comme tu m'a dis

  18. #18
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Ah, sans valider le formulaire, au temps pour moi...
    Dans ce cas-là :

    Sur ton select, appelle une fonction javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="mySelect" onchange="myFunction()">
    Dans cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function myFunction() {
    // Tu récupères la valeur selectionnée du select
     var x = document.getElementById("mySelect").value;
     
    // Requête AJAX
    $.ajax({
    // ton fichier php 
    url: 'afficherMessage.php',
    data: { choix: x }
    })
    }
    Et du coup, ton afficherMessage.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     $valeur_select = isset($_GET['choix']) ? $_GET['choix']:null;
     
        $q = $this->db->prepare("SELECT cat_message FROM categorie where cat_id = ".$valeur_select);
        $q->execute ; 
     
     
      ?>
    Et de cette manière, tu devrais pas être trop mal je pense.
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  19. #19
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 60
    Points : 15
    Points
    15
    Par défaut
    je ne comprend pas la rubrique ajax en fait ...

    afficheMessage c'est un fonction de CategorieManager et non un fichier php

  20. #20
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Petit cours sur AJAX : http://ajax.developpez.com/cours/

    Et bien fais-en un fichier php, je vois pas le problème...

    (Quand j'étais à l'école, chaque fonction avait son fichier par soucis de clarté, je continu cette pratique et crois-moi, tu t'y retrouves bien plus vite. )

    EDIT : Si c'est pour la déclaration de ta BDD que tu es un peu perdu, dans un premier temps redéclare là dans ton nouveau fichier PHP. Par la suite, je te montrerais comment balader d'un fichier à l'autre pour n'avoir qu'une déclaration.
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. création d'un formulaire dynamique
    Par mido12 dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 16/03/2011, 11h36
  2. Réponses: 1
    Dernier message: 08/03/2010, 14h01
  3. Création d'un formulaire dynamique
    Par ronki dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/01/2008, 14h29
  4. Création d'un formulaire dynamique
    Par Cybèle dans le forum IHM
    Réponses: 1
    Dernier message: 26/12/2007, 14h02
  5. Réponses: 1
    Dernier message: 04/01/2007, 23h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo