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 :

récupérer les données de deux listes liées


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut récupérer les données de deux listes liées
    Bonjour à toutes et à tous,

    Un formulaire contient la liste des regions et une autre liste qui depend de la sélection de la première et qui contient les départements

    Voici le formulaire :
    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
    <?php
    ?>
    <script src="jquery.js"></script>
    <script>
    $(document).ready(function() {
        var $regions = $('#regions');
        var $departements = $('#departements');
     
        // chargement des régions
        $.ajax({
            url: 'http://127.0.0.1/php/france.php',
            data: 'go', // on envoie $_GET['go']
            dataType: 'json', // on veut un retour JSON
            success: function(json) {
                $.each(json, function(index, value) { // pour chaque noeud JSON
                    // on ajoute l option dans la liste
                    $regions.append('<option value="'+ index +'">'+ value +'</option>');
                });
            }
        });
     
        // à la sélection d une région dans la liste
        $regions.on('change', function() {
            var val = $(this).val(); // on récupère la valeur de la région
     
            if(val != '') {
                $departements.empty(); // on vide la liste des départements
     
                $.ajax({
                    url: 'http://127.0.0.1/php/france.php',
                    data: 'id_region='+ val, // on envoie $_GET['id_region']
                    dataType: 'json',
                    success: function(json) {
                        $.each(json, function(index, value) {
                            $departements.append('<option value="'+ index +'">'+ value +'</option>');
                        });
                    }
                });
            }
        });
    });
    </script>
    </head>
    <body>
    <form action="http://127.0.0.1/php/traitement.php" method="GET">
    <select id="regions" name="regions">
        <option value="">-- Regions --</option>
    </select>
     
    <select id="departements" name="departements">
        <option value="">-- Departements--</option>
    </select>
    <br/>
    <br/>
    <br/>
    <input type="submit" value="Valider" name="upload" id="upload"/></span>
    </form>
    </body>
    </html>


    voici la page de connection à la base de données

    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
    <?php
    // connexion à la base de données
       try {
            $bdd = new PDO('mysql:host=localhost;dbname=france', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
        } catch(Exception $e) {
            exit('Impossible de se connecter à la base de données.');
        }
     
    if(isset($_GET['go']) || isset($_GET['id_region'])) {
     
        $json = array();
     
        if(isset($_GET['go'])) {
            // requête qui récupère les régions
            $requete = "SELECT id, nom FROM regions ORDER BY nom";
        } else if(isset($_GET['id_region'])) {
     
            $id = htmlentities(intval($_GET['id_region']));
            // requête qui récupère les départements selon la région
            $requete = "SELECT id, nom FROM departements WHERE id_region = ". $id ." ORDER BY nom";
        }
     
     
        // exécution de la requête
        $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
     
        // résultats
        while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
            // je remplis un tableau et mettant l'id en index (que ce soit pour les régions ou les départements)
            $json[$donnees['id']][] = utf8_encode($donnees['nom']);
        }
     
        // envoi du résultat au success
        echo json_encode($json);
    }
    ?>


    et pour finir la page traitement :

    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
    <?php
    ?>
     
    <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
    <script type="text/javascript" src="/dept_xhr.js" charset="iso_8859-1"></script>
    <head>
    <script src="jquery.js"></script>
    <script>
     
     
    </script>
    </head>
    <body>
    <?php
    echo "id region :";
     
    if (isset($_GET['id_region'])){
    echo $_GET['id_region'];
    }
    echo "<br/>";
    echo "<br/>";
    echo "id departement :";
    if (isset($_GET['id_departement'])){
    echo $_GET['id_departement'];
    }
    ?>
     
    </body>
    </html>

    Lors de l'envois les valeurs passent par l'URL je les vois mais elles ne s'affichent pas dans la page de traitement . A votre avis que faut'il faire ?

    Merci infiniment pour votre aide

  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
    tes <select> s'appelle "regions" et "departements", donc $_GET['regions'] et $_GET['departements']
    c'est d'ailleurs ce que tu vois dans l'url non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ha mais oui puty quel boulet !!!!! sérieux je suis désolé pour le dérangement Merci Sabotage excuse moi

    sa fonctionne !

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/11/2008, 17h19
  2. Récupérer les données d'une liste dans une autre liste
    Par benoit knk dans le forum SharePoint
    Réponses: 2
    Dernier message: 23/05/2008, 16h10
  3. Recouper les données entre deux listes
    Par greg4646 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/08/2007, 10h27
  4. Réponses: 7
    Dernier message: 28/06/2007, 11h08
  5. Récupérer les données d'une liste dans un $_POST
    Par Sangdrax1604 dans le forum Langage
    Réponses: 4
    Dernier message: 19/10/2006, 10h55

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