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

AJAX Discussion :

[AJAX] Formulaire Interactif AJAX/PHP MYSQL


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 27
    Points : 20
    Points
    20
    Par défaut [AJAX] Formulaire Interactif AJAX/PHP MYSQL
    Bonjour à tous,

    Je souhaite faire un formulaire interactif. Lorsque l'on choisit une région, la liste des département composants celle-ci apparaît dans une liste déroulante de type <select></select> et ainsi de suite concernant le code postal et la ville à choisir.

    Mon problème est lorsque je choisis une région, la liste des départements qui compose la région, n'apparaît pas. Je ne vois pas d'où cela vient-il. Je vous laisse les sources.

    Code HTML
    Code html : 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
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Formulaire Interactif Ajax/php</title>
            <script src="xhr.js"></script>
            <script src="fonction.js"></script>
        </head>
        <body>
        	<h1>Formulaire interactif avec Ajax et PHP/MySql</h1>
        	<form method="POST" action="">
        		<fieldset style="width:400px;">
        			<legend>Formulaire Habitations</legend>
        			<label for="region">Région:</label>
        			<select id="region" onChange="dpt()">
        				<option value="0">-</option>
    				<?php
                                            $link = mysql_connect('localhost','root','');
                                            mysql_select_db('test');
                                            $query = 'SELECT * FROM region';
                                            $resultat=mysql_query($query);
                                            while($row = mysql_fetch_array($resultat)){
                                                            echo "<option value=".$row["idRegion"].">".utf8_encode($row["nomRegion"])."</option>\n\t\t\t\t";
                                                    }
                                            mysql_free_result($resultat);
                                            mysql_close($link);
                                    ?>
    				</select><br/>
        			<label for="dpt">Département:</label>
        			<select id="dpt">
        				<option>-</option>
        			</select><br/>
        			<label for="cp">Code Postal:</label>
        			<select id="cp">
        				<option>-</option>
        			</select><br/><br/>
        			<label for="ville">Ville:</label>
        			<select id="ville">
        				<option>-</option>
        			</select><br/>				
    			</fieldset>
    		</form>
        </body>
    </html>

    Code PHP
    Code php : 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
    <?php
    	if(isset($_POST['idRegion']))
    	{
     
    		//lien bdd
    		$link = mysql_connect('localhost','root','');
    		mysql_select_db('test');
     
    		//requete vers la base de données
    		$query = 'SELECT department.idDpt,departement.nomDpt FROM departement,region WHERE departement.idRegion=region.idRegion And region.idRegion='$_POST['idRegion'];
    		$result = mysql_query($query);
     
    		while($row=mysql_fetch_array($result))
    			{
    				echo '<option value='.$row["idDpt"].'>'.utf8_encode($row["nomDpt"]).'</option>'."\n\t\t\t\t";
    			}
    	}
    	//liberation des ressources
    	mysql_free_result($result);
    	mysql_close($link);
    ?>

    Code Javascript
    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
    function dpt(){
    	var requete = xhr();
     
    	//Methode post
    	requete.open("POST","dpt.php",true);
     
    	//callback
    	requete.onreadystatechange = function(){
    		if(requete.readyState==4 && requete.status==200){
    			document.getElementById('dpt').innerHTML= requete.responseText;
    		}
    	}
     
    	//entete
    	requete.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        var region = getElementById('region');
        var idRegion = region.options[region.selectedIndex].value;
        //envoi de la requete
        requete.send("idRegion"+idRegion);
    }

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var region = getElementById('region');
    Regarde comment est utilisé getElementById() ailleurs dans ton code...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    C'est bon, j'ai corrigé mes erreurs.
    1- le getElementById()
    2- l'appel de ma fonction Xhr() au lieu de getXhr()
    3- Requete SQL

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

Discussions similaires

  1. Ajax,dropdown, mustache and php / mysql
    Par oitsuki dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/10/2017, 11h20
  2. Réponses: 1
    Dernier message: 11/02/2014, 13h27
  3. [AJAX] Formulaire de news php en ajax
    Par nico44530 dans le forum AJAX
    Réponses: 5
    Dernier message: 25/06/2012, 12h02
  4. [AJAX] Pagination comme Facebook (PHP/mysql)
    Par mecmec dans le forum AJAX
    Réponses: 0
    Dernier message: 14/10/2011, 18h39
  5. [AJAX] Mon premier script PHP/MYSQL/AJAX
    Par NiC1305 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/04/2008, 19h51

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