PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 02-09-2011 23:04:06

msi79
Membre
Inscription : 11-08-2011
Messages : 25

Champs déroulant en php

Bonjour,
je suis débutant en php .
voici mon problème.
des personnes qui se trouve dans différents département doivent s'enregistrer dans ma base de donnée .
il se trouve que ses personnes sont dans des département différents.
et chaque département contient plusieurs villes .
chaque villes plusieurs communes .
je voudrais que lorsqu'une personnes choisi un département alors la page charge et lui propose les villes de ce département et pour la ville les communes.
je sais pas si je me fais comprendre .mais si quelqu'un pourrait m'aider . je même pas par ou commencer.
merci d'avance

Hors ligne

#2 03-09-2011 10:23:49

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Champs déroulant en php

salut,

sans rechargement de la page il faut utiliser AJAX.

Dans le cas avec ou sans il faut utiliser une requete sql qui va chercher les bonnes infos (je suppose qu'elle sont dans des tables ?)

dans par exemple
le choix du département donne une variable ($_POST ou $_GET) qui va te permettre de créer une requete pour les villes exemple : select nom from tablecommunes where departement=$_POST['departement'] 
idem pour le reste.

juste comme ça une commune n'appartient a une ville, il s'agit d'une commune (ou un p'tit village mais c'est une entité à part entière) par contre une ville ou commune peux contenir des lieux dit (ou village en bretagne ..) des quartiers etc.

ceci dit ça ne change rien au fait qu'il te faut récupèrer le nom de l'ancetre permettant la selection des infos a afficher et ensuite la génération des listes déroulante.

si tu nous montre la structure des tables je pourrais te faire un exemple simple (sans ajax ^^).

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 03-09-2011 10:43:12

msi79
Membre
Inscription : 11-08-2011
Messages : 25

Re : Champs déroulant en php

j'ai crée 2 tables :
1. table  EmploiInscriptionEtape1( region,departement,commune)
2.table EmploiInscriptionEtape2(nom,prenom,residence,tel,cel)

Hors ligne

#4 04-09-2011 08:15:54

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Champs déroulant en php

Saluton,
Déjà, les noms choisis pour les tables sont plutôt croquignolets.
Ensuite, sur quelle(s) colonne(s) pourra se faire la jointure entre ces tables ? Mystère.
Je crois, qu'avant tout, il convient de revoir la conception de la base de données.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 04-09-2011 08:50:11

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Champs déroulant en php

pour te donner plus d'info dans le sens de MK :
tu aura 3 tables pour régions, départements, communes
départment contiendra la clef primaire de régions
communes contiendra la clef primaire de départements (pour savoir qui appartient a qui).

dans la table qui va concerner, disons l'utilisateur tu mettra la clef primaire de la commune (qui te permettra de remonter jusqu’à la région smile


@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#6 04-09-2011 10:04:45

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Champs déroulant en php

Ouais-fe, m'enfin disons que pour une trentaine de région et une centaine de départements, je ne sais pas si ça vaut le coup de construire dynamiquement, et par requête qui plus est, des choses qui pourraient être figées dans des includes et incorporées dynamiquement via AJAX.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 04-09-2011 10:18:32

msi79
Membre
Inscription : 11-08-2011
Messages : 25

Re : Champs déroulant en php

donc voici mes tables comme tu me l'a conseillé alors j'atend que tu me guide:

region(id_reg,nom_reg)

departement(id_dep,id_reg,nom_dep)

commune(id_com,id_dep,nom_com)

personne(id_pers,id_com,nom,prenom,nationalite,tel,cel)

NB je maîtrise pas ajax .alors je veux ça en php

Dernière modification par msi79 (04-09-2011 10:21:57)

Hors ligne

#8 04-09-2011 10:59:58

msi79
Membre
Inscription : 11-08-2011
Messages : 25

Re : Champs déroulant en php

je viens de voir ces codes sur le net (quelqu'un que vous avez essayé d'aider ). je pense que c'est la solution a mon problème.mais moi étant débutant en php je sais pas ou commencer ,comment ordonner les fichiers et comment adapter a mon cas. en plus les fichier a extension ajax ou .js me font tourner la tète .
dc sil vous plait quelqu'un pour me reconstituer les fichier de sorte a répondre a ma préoccupation . mes tables sont un peu plus haut.

fichiers index.php:


Code :
<head>
        <title>Démo des listes liées en AJAX</title>
        <script type="text/javascript" src="js/listeLiees.js"></script>
        <style type="text/css">
        label {
            width: 350px;
            float: left;
        }
        select {
            width: 200px;
        }
        </style>
    </head>
    <body>
    <?php
     
    require_once('class/class.france.php');
    $france = new france();
    $region = $france->getRegions();
    echo '
        <label for="region">Région: </label>
        <select name="region" id="region" onchange="getDpt();">
            <option value="-1">Régions</option>
        ';
    for($i=0;$i<count($region);$i++) {
        echo '
            <option value="'.$region[$i]['region_id'].'">'.$region[$i]['region_name'].'</option>
            ';
    }
    echo '
        </select>
        ';
    echo '
        <div id="champsDpt">
            <label for="dpt">Département: </label>
            <select name="dpt" id="dpt">
                <option value="-1">Choisir une région</option>
            </select>
        </div>
        <div id="champsVille">
            <label for="ville">Ville: </label>
            <select name="ville" id="ville">
                <option value="-1">Choisir un département</option>
            </select>
        </div>
        <div id="champsquartier">
            <label for="quartier">Quartier: </label>
            <select name="quartier" id="quartier">
                <option value="-1">Choisir une ville</option>
            </select>
        </div>
        ';
    ?>
    </body>


fichier ajax.dpt.php


Code :
<?php
require_once('class/class.france.php');
$france = new france();
$dpt = $france->getDptByRegion($_POST['idRegion']);
$listeDpt =  '<label for="dpt">Département: </label>';
$listeDpt .= '<select name="dpt" id="dpt" onchange="getVille();">';
for($i=0;$i<count($dpt);$i++) {
    $listeDpt .= '<option value="'.$dpt[$i]['dpt_id'].'">'.$dpt[$i]['dpt_name'].'</option>';
}
$listeDpt .= '</select>';
echo mb_convert_encoding($listeDpt, "UTF-8", "ISO-8859-15" );
?>

fichier ajax.ville.php

Code :
<?php
require_once('class/class.france.php');
$france = new france();
$villes = $france->getVilleByDpt($_POST['idDpt']);
$listeVilles =  '<label for="ville">Ville: </label>';
$listeVilles .= '<select name="ville">';
for($i=0;$i<count($villes);$i++) {
    $listeVilles .= '<option value="'.$villes[$i]['ville_id'].'">'.$villes[$i]['ville_name'].'('.$villes[$i]['ville_cp'].')</option>';
}
$listeVilles .= '</select>';
echo mb_convert_encoding($listeVilles, "UTF-8", "ISO-8859-15" );
?>

Hors ligne

Pied de page des forums