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

PHP & Base de données Discussion :

Créer une liste déroulante exécutant une requête en fonction du choix sélectionné [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 40
    Par défaut Créer une liste déroulante exécutant une requête en fonction du choix sélectionné
    Bonjour,

    Je travaille actuellement sur un projet de monitoring

    J'ai donc créé une interface web dans laquelle j'exécute des requêtes SQL par PHP

    Jusque là aucun soucis, j'ai un beau petit tableau qui affiche en tant réel les données dont j'ai besoin (résultats de contrôle d'interfaces)

    Cependant, il se peut que les contrôles d'interfaces renvoient des erreurs pour diverses raisons dans le champ "Commentaire" (voir code ci-dessous)

    J'aimerai donc créer une nouvelle colonne dans mon tableau permettant "d'acquitter" ces erreurs, c'est à dire de modifier ce qui est écrit dans le champ "Commentaire" d'une ligne précise

    Pour cela j'aimerai afficher une liste déroulante de textes prédéfinis qui remplaceront la valeur du champ "Commentaire" et qui disparait une fois la sélection réalisée pour laisser place à quelque chose du type "Acquitté le date_du_jour"

    Malheureusement, je suis encore novice dans le milieu et je ne sais pas comment faire

    Auriez-vous des solutions à me proposer svp ?

    Merci d'avance

    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
    <table>
                        <tr>
                            <th>CTL_CODE</th>
                            <th>Description</th>
                            <th>Lancement</th>
                            <th>Heure_Deb_Prevue</th>
                            <th>Heure_Deb_Reelle</th>
                            <th>Heure_Fin_Reelle</th>
                            <th>Heure_Ctl</th>
                            <th>Commentaires</th>
                            <th>Acquittement</th>
                            <th>Reference_Traitement</th>
                        </tr>
                        <?php
                        //On affiche les lignes du tableau une à une à l'aide d'une boucle
                        //Attention ! Si il y a une erreur dans l'un des champs, la boucle est arrêtée et le tableau ne contient pas toute la bdd
                        while ($donnees = sqlsrv_fetch_array($result)) {
                            ?>
                            <tr>
                                <td><?php echo $donnees['CTL_CODE']; ?></td>
                                <td><?php echo $donnees['Description']; ?></td>
                                <td><?php echo $donnees['Lancement']; ?></td>
                                <td><?php echo $donnees['DateHeure_prevue_deb_app']->format('Y-m-d H:i:s'); ?></td>
                                <td><?php
                                    if (empty($donnees['DateHeure_deb_reelle'])) {
                                        echo $donnees['DateHeure_deb_reelle'];
                                    } else {
                                        echo $donnees['DateHeure_deb_reelle']->format('Y-m-d H:i:s');
                                    }
                                    ?></td>
                                <td><?php
                                    if (empty($donnees['DateHeure_fin_reelle'])) {
                                        echo $donnees['DateHeure_fin_reelle'];
                                    } else {
                                        echo $donnees['DateHeure_fin_reelle']->format('Y-m-d H:i:s');
                                    }
                                    ?></td>
                                <td id="hctl"><?php echo $donnees['Heure_ctl']; ?></td>
                                <td><?php echo $donnees['Commentaires']; ?></td>
                                <td></td>
                                <td><?php echo $donnees['Reference_Traitement']; ?></td>
                            </tr>
                            <?php
                        } //fin de la boucle, le tableau contient toute la BDD
                        sqlsrv_close($conn); //deconnection de mysql
                        ?>
                    </table>

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 524
    Par défaut
    Salut,

    La meilleur solution c'est d'utiliser le plugin jQuery DataTable afin d'avoir ce résultat mais pour ça il te faut une certaine compétence en jQuery.

    Après il est possible d'ajouter une colonne par exemple "Controles" dans laquelle tu mets ton select avec deux choix possibles (Modifierr et Supprimer) et lorsqu'on sélectionne une option de la liste déroulante, une fenêtre modale s'affiche qui contiendra toutes les données de la ligne correspondante.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 40
    Par défaut
    Salut,

    Tout d'abord merci pour la réponse

    Malheureusement je n'ai aucune connaissance sur le jQuery
    Je vais tout de même essayer de me renseigner dessus, on sait jamais...

    J'étais en train d'explorer quelque chose dans le genre de ta deuxième option mais je ne trouvais pas de manière de la réaliser.
    Comment faire ouvrir une fenêtre modale dans le cas présent ?
    Je sais le faire en C# mais en html

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 524
    Par défaut
    Salut,

    Pour créer une fenêtre modal personnalisée en html, c'est simple avec un peu de css et javascript...

    Sinon si tu ne veux pas utiliser ni jQuery ni javascript, tu peux alors le faire avec la méthode classique en ajoutant d'abord la colonne "Contrôle"
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <tr>
         .....
         <th>Reference_Traitement</th>
         <th>Contrôle</th>
    </tr>

    Puis tu ajoutes le <td> correspondant à cette colonne, dans laquelle tu mets ton <select> avec deux options qui contient des <a> et qui redirigent vers (Edit.php ou Delete.php) en utilisant un href et un id unique par exemple $donnees['CTL_CODE'];
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while(...){....?>
    <td><?php echo $donnees['Reference_Traitement']; ?></td>
    <td>
         <select>
              <option><a href="Edit.php?id=<?php echo $donnees['CTL_CODE'];?>">Editer</a></option>
              <option><a href="Delete.php?id=<?php echo $donnees['CTL_CODE'];?>">Supprimer</a></option>
         </select>
    </td>
    <php?}

    Après il ne te reste plus qu'à créer les fichiers Edit.php et Delete.php dans lesquels tu récupère le id avec $_GET["id"] et le tour est joué.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 40
    Par défaut
    Merci beaucoup pour ta réponse !

    Mais vu que je suis un peu curieux, je me suis penché sur le jQuery et c'est franchement génial !

    Du coup, j'aimerai bien trouver une solution avec ce type de langage

    Mon tableau est désormais du même genre que celui que tu m'as exposé dans ta première réponse,

    Plus qu'à agrémenter tout ça

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 524
    Par défaut
    Citation Envoyé par Wolfreedoms
    Du coup, j'aimerai bien trouver une solution avec ce type de langage
    Dans ce cas il faut voir cet exemple qui permet d'utiliser un fichier php comme source de donnée.

    L'onglet "ajax" (en bas) montre un exemple qui permet d'alimenter les données du plugin, le plus important c'est que ton fichier php doit contenir les items
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    "draw",
      "recordsTotal",
      "recordsFiltered",
      "data":[]
    draw, c'est un chiffre incrémenté automatiquement à chaque fois qu'on lance une requête ajax, pour le récupérer tu dois utiliser $_REQUEST['draw'].
    recordsTotal est un item qui contient le nombre de toutes les lignes renvoyées.
    recordsFiltred est un item qui contient le nombre des lignes filtrées ( avec une recherche par exemple).
    data est l'item qui contiendra les données à afficher dans le tableau.

    Toutes les données sont stockées dans la variable $_REQUEST.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Créer une désignation en fonction de zone de liste déroulante
    Par locnesia dans le forum Access
    Réponses: 0
    Dernier message: 07/01/2015, 10h20
  2. Réponses: 3
    Dernier message: 19/07/2010, 08h42
  3. Réponses: 4
    Dernier message: 07/08/2009, 13h39
  4. Réponses: 2
    Dernier message: 11/03/2009, 10h36

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