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 :

filtrer les valeurs a partir d'une autre option


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut filtrer les valeurs a partir d'une autre option
    je viens de commencer un projet et je bloque depuis un certain temps

    j'ai fais deux requetes sur ma base de donné qui consiste obtenir une liste de personne et une autre qui permet d'obtenir toute les date de toute les personnes de la base de donné.

    je cherche a selectioner une de ces personnes puis à faire choisir les dates qui correspond a cette personne

    coici mon code:

    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
     
    <label for="lstVisiteur" accesskey="n">Visiteur : </label>
    <select id="lstVisiteur" name="lstVisiteur" class="form-control">
        <?php
        foreach ($lesVisiteurs as $unVisiteur) {
            $idVisiteur = $unVisiteur['id'];
            $prenom = $unVisiteur['prenom'];
            $nom = $unVisiteur['nom'];
            if ($idVisiteur == $visiteurASelectionner) {
                ?>
                <option selected value="<?php echo $idVisiteur ?>">
                    <?php echo $prenom . ' ' . $nom ?> </option>
                <?php
            } else {
                ?>
                <option value="<?php echo $idVisiteur ?>">
                    <?php echo $prenom . ' ' . $nom ?> </option>
                <?php
            }
        }
        ?>    
     
    </select>
    <label for="lstMois" accesskey="n">Mois : </label>
    <select id="lstMois" name="lstMois" class="form-control">
        <?php
        foreach ($lesMois as $unMois) {
            $idVisiteur = $unMois['id'];
            $mois = $unMois['mois'];
            $numAnnee = $unMois['numAnnee'];
            $numMois = $unMois['numMois'];
                if ($mois == $moisASelectionner) {
                    ?>
                    <option selected value="<?php echo $mois ?>">
                        <?php echo $numMois . '/' . $numAnnee ?> </option>
                    <?php
                } else {
                    ?>
                    <option value="<?php echo $mois ?>">
                        <?php echo $numMois . '/' . $numAnnee ?> </option>
                    <?php
                }
        }
        ?>    
     
    </select>

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Voir mon billet de blog sur les listes liées. Il traite d'un truc en plus (l'URL-Rewriting) mais la base reste la même quant aux listes liées.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    merci pour cette reponce rapide

    mais je maîtrise très mal javascript (pas réussi) et je ne suis pas sur que j'ai le droit de le faire avec le cahier des charges
    la page pour les deux liste liées est appeler par un fichier php appeler contoleur.php
    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
     
    $action = filter_input(INPUT_GET, 'action', FILTER_SANITIZE_STRING);
    switch ($action) {
        case 'selectionnerVisiteurs':
            /*recuper tous les visiteur de la base de donné */
            $lesVisiteurs = $pdo->getLesVisiteurs();
            include 'vues/v_listeVisiteurMois.php';
            break;
        case 'selectionnerMois':
            $lesVisiteurs = $pdo->getLesVisiteurs();
            $idVisiteur = filter_input(INPUT_POST, 'lstVisiteur', FILTER_SANITIZE_STRING);
            /*recuper tous les mois corespondant au visiteur*/
            $lesMois = $pdo->getLesMoisDisponibles($idVisiteur);
            // Afin de sélectionner par défaut le dernier mois dans la zone de liste
            // on demande toutes les clés, et on prend la première,
            // les mois étant triés décroissants
            $lesCles = array_keys($lesMois);
            $moisASelectionner = $lesCles[0];
            include 'vues/v_listeVisiteurMois.php';
     
            break;
    }
    il n'y aurait pas un moyen pour quand je sélectionne ma première liste je passe du cas 'selectionnerVisiteurs' au cas 'selectionnerMois' avec le resultat avec le POST sans appuyer sur le bouton avec le fichier v_listeVisiteurMois.php:

    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
     
    <form action="index.php?uc=validerFrais&action=validerFraisForfait" 
                  method="post" role="form">
                <div class="form-group">
                	<label for="lstVisiteur" accesskey="n">Visiteur : </label>
                    <select id="lstVisiteur" name="lstVisiteur" class="form-control" onChange=''> /*quelque chose avec le onchange*/
     
                        <?php
                        foreach ($lesVisiteurs as $unVisiteur) {
                            $idVisiteur = $unVisiteur['id'];
                            $prenom = $unVisiteur['prenom'];
                            $nom = $unVisiteur['nom'];
                            if ($idVisiteur == $visiteurASelectionner) {
                                ?>
                                <option selected value="<?php echo $idVisiteur ?>">
                                    <?php echo $prenom . ' ' . $nom ?> </option>
                                <?php
                            } else {
                                ?>
                                <option value="<?php echo $idVisiteur ?>">
                                    <?php echo $prenom . ' ' . $nom ?> </option>
                                <?php
                            }
                        }
                        ?>    
     
                    </select>
                    <?php 
                    if($action == 'selectionnerMois') {
                    ?>
                    <label for="lstMois" accesskey="n">Mois : </label>
                    <select id="lstMois" name="lstMois" class="form-control">
     
                        <?php
     
                        foreach ($lesMois as $unMois) {
                                $idVisiteur = $unMois['id'];
                                $mois = $unMois['mois'];
                                $numAnnee = $unMois['numAnnee'];
                                $numMois = $unMois['numMois'];
                                if ($mois == $moisASelectionner) {
                                    ?>
                                    <option selected value="<?php echo $mois ?>">
                                        <?php echo $numMois . '/' . $numAnnee ?> </option>
                                    <?php
                                } else {
                                    ?>
                                    <option value="<?php echo $mois ?>">
                                        <?php echo $numMois . '/' . $numAnnee ?> </option>
                                    <?php
                                }
                        }
                        ?>    
     
                    </select>
                    <?php 
                    }
                    ?>
                </div>
                <input id="ok" type="submit" value="Valider" class="btn btn-success" 
                       role="button">
                <input id="annuler" type="reset" value="Effacer" class="btn btn-danger" 
                       role="button">
            </form>

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ben sans javascript, il faut un contrôle sur lequel l'utilisateur peut cliquer et qui déclenchera la soumission du formulaire, l'extraction de la seconde liste et le rappel de tout ce que l'utilisateur a déjà saisi dans le formulaire.
    C'est plus lourd que d'appeler un programme Ajax qui ne fait que modifier la seconde liste en fonction du choix de la première sans renouveler toute la page.
    Interdire le Javascript, aujourd'hui, c'est se priver d'une grande partie des avantages du web dynamique.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,



    AVANT de chercher à l'appliquer à ton cas particulier, je t'invite vivement à TESTER l'EXEMPLE fourni, afin de bien comprendre le fonctionnement d'Ajax.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    merci beaucoup,

    j'ai finalement réussi a partir du lien de jreaux62
    cela fait ce que je voulais faire mais il y a un truc que je ne comprend pas

    pourquoi le nouveau fichier php appeler par l'XmlHttpRequest ne peut pas utiliser les fonctions stocké dans mon pdo?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ce fichier est totalement indépendant du script en cours.

    Il faut donc lui fournir toutes les données nécessaires : connexion PDO, config.,...

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

Discussions similaires

  1. [Débutant] Valeur calculé à partir d'une autre liste
    Par pliza dans le forum Développement Sharepoint
    Réponses: 6
    Dernier message: 29/09/2014, 01h09
  2. [WD17] récupérer les valeurs des champs d'une autre fenetre
    Par Débutant_WD dans le forum WinDev
    Réponses: 2
    Dernier message: 17/09/2013, 11h45
  3. récupérer les valeurs des champs d'une autre page
    Par owenho dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/02/2013, 00h47
  4. [XL-2003] Modifier valeur cellule à partir d'une autre cellule
    Par TiteufBSB dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/03/2011, 12h39
  5. Définir valeur à partir d'une autre
    Par clo85 dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 13/07/2007, 15h06

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