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] script ajax basique qui n'est pas executé


Sujet :

AJAX

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut [AJAX] script ajax basique qui n'est pas executé
    Bonjour, j'ai un formulaire qui, normalement, devrait faire ceci : on a un select avec les régions de france, avec le onchange, sa affiche une autre liste déroulante avec les departement correspondants . mais voilà, mon script est super super simple et je ne comprends pas pourquoi il ne marche pas
    D'autant plus que je fais la meme action dans le meme formulaire avec un autre champ select qui lui marche très bien .

    ajax :
    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
    function region(quelle)
    	{
    	var xhr = getxhr();
    	xhr.onreadystatechange = function() 
    		{if (xhr.readyState == 1) 
    			{
    			document.getElementById("depart").innerHTML="1<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 2) 
    			{
    			document.getElementById("depart").innerHTML="2<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 3) 
    			{
    			document.getElementById("depart").innerHTML="3<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 4 && xhr.status == 200) 
    			{
    			document.getElementById("depart").innerHTML=xhr.responseText;
    			}
    		};
     
     	var requete="reg="+quelle;
    	xhr.open("POST", "composants/inscription/departement.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send(requete);
    	}
    html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // ceci est une partie du tableau d'un formulaire antre des balises <form></form>
    <tr><th>Département *</th><td><div id="depart"></div></td></tr>

    composants/inscription/departement.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
    include '../../php/function.php';
    if (isset($_POST['reg']))
    	{
    	db_connect();
    	$reg=$_POST['reg'];
    	$query=mysql_query("SELECT * FROM departement WHERE id_region='$reg'");
    	?>
    	<select name="departement" id="departement" onChange="dept();"><option value="">D&eacute;partement</option>
    	<?php
    	while ($dep=mysql_fetch_array($query))
    		{
    		?>
    		<option value="<?php echo $dep['id']; ?>"><?php echo htmlentities($dep['departement']); ?></option>
    		<?php
    		}
    		?>
    	</select>
    	<?php
    	}
    ?>

    la liste déroulante est appelée dans le formulaire par un include dont voici le fichier inclus :
    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
    <?php
    db_connect();
    $query=mysql_query("SELECT * FROM region");
    	?>
    	<div>
    	<select name="region" id="region" onChange="region(this.value);"><option value="">Région</option>
    	<?php
    	while ($r=mysql_fetch_array($query))
    		{
    		?>
    		<option value="<?php echo $r['id']; ?>"><?php echo $r['region']; ?></option>
    		<?php
    		}
    	?>
    	</select>
    	</div>

    la liste déroulante des régions s'affiche bien, mais le onchange ne marche pas
    je précise que les fonctions sont dans un fichier qui se nomme ,ajax.js qui est bien appelé dans le head du fichier parent .
    Le formulaire est dans un fichier inclus dans le fichier parent et est dans une fonction

    Aucun ready state n'est retourné, ni 1, ni 2, ni 3, ni 4 ...

    Merci pour votre aide précieuse par avance .

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    as-tu au moins fait les vérifications de base, qui consistent à mettre :
    - des echo ... (php)
    - des alert(...); (javascript)
    pour voir si les variables sont bien transmises, et à quel endroit ça ne fonctionne plus ?

    Au passage, tu peux simplifier l'écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	xhr.onreadystatechange = function() 
    	{
    		if (xhr.readyState == 4 && xhr.status == 200) 
    		{
    			document.getElementById("depart").innerHTML = xhr.responseText;
    		} else {
    			document.getElementById("depart").innerHTML = xhr.readyState + '<span align="center"><img src="composants/inscription/loader.gif" style="width:32px;height:32px;" alt="" /></span>';
    		}
    	};

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    Meri beaucoup d'avoir regardé, mais j'ai cherché, trifouillé mon code, et me suis apperçu qu'en enlevant les includes dans les fichiers appelés en ajax, sa marche :s bizarre ...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    et oui biensure avant de poster j'avais fait ces verifs merci encore tout de meme .

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cuisto44000 Voir le message
    ...en enlevant les includes dans les fichiers appelés en ajax, sa marche :s bizarre ...
    Pas bizarre si le chemin d'accès est faux (entrainant un message d'erreur, qui n'est pas affiché, puisque "ajax"...)
    Il faut tester le fichier "à part" (en direct).

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    je sais bien, sauf que le chemin je l'ai modifié et modifié et re modifié et rien a faire sa ne dépassait pas le stade des readystates 3 donc bizarre ...

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Il se peut que tu as une erreur serveur
    Essaie avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (xhr.readyState == 4){ 
    	if(xhr.status == 200 || xhr.status == 0){
    			document.getElementById("depart").innerHTML = xhr.responseText;
    	}else{
    		document.getElementById("depart").innerHTML = "Code d'erreur: " + xhr.status; ;
    	}
    }else {
    		document.getElementById("depart").innerHTML = xhr.readyState + '<span align="center"><img src="composants/inscription/loader.gif" style="width:32px;height:32px;" alt="" /></span>';
    }

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    Merci, mais depuis que j'ai enlevé les includes sa marche, c'était pour la connexion bdd de toutes manieres, donc j'ai remplacé le include par la connexion bdd
    Me reste un soucis que je n'explique pas ... rrr

    mon composant affiche une liste des regions, quand on selectionne une région, sa affiche une autre liste des departements, puis villes ... quand on choisi une ville, je voudrais que sa affiche un champ de type text en readonly en dessous avec le code postale ... apriori rien de méchant, sauf qu'il doit y avoir une erreur dans ma fonction que je n'arrive pas a déceler ... Pourtant c'est simplement construit de la meme manière que les autres rien a faire sa alimente pas le div concerné .

    ajax
    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
     
    function ville(villes)
    	{
    	var xhr = getxhr();
    	xhr.onreadystatechange = function() 
    		{
    		if (xhr.readyState == 1) 
    			{
    			document.getElementById("code").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 2) 
    			{
    			document.getElementById("code").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 3) 
    			{
    			document.getElementById("code").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 4 && xhr.status == 200) 
    			{
    			document.getElementById("code").innerHTML=xhr.responseText;
    			}
    		};
     
     	var requete="villes="+villes;
    	xhr.open("POST", "composants/inscription/codepostal.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send(requete);
    	}
    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
     
    <?php
    /* Connexion MYSQL */
    $host="";
    $user="";
    $pass="";
     
    mysql_connect($host,$user,$pass);
    mysql_select_db($user);
    if (isset($_POST['villes']))
    	{
    	$ville=$_POST['villes'];
    	$query=mysql_query("SELECT * FROM ville WHERE id='$ville'");
    	$assoc=mysql_fetch_array($query);
     
    	echo '<input type="text" name="cp" value="'.$assoc['cp'].'">';
     
    	}
    mysql_close();
    ?>
    Aucun readystate n'est renvoyé comme si la fonction n'envoyai meme pas la requete ...

    code qui appele la fonction ville();
    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
     
    <?php
    /* Connexion MYSQL */
    $host="";
    $user="";
    $pass="";
     
    mysql_connect($host,$user,$pass);
    mysql_select_db($user);
     
    if (isset($_POST['departement']))
    	{
    	if ($_POST['departement']<=10)
    		{$departement="0".$_POST['departement'];}
    	else
    		{$departement=$_POST['departement'];}
    	$query=mysql_query("SELECT * FROM ville WHERE id_departement='$departement'");
    	?>
    	<select name="ville" id="ville" onChange="ville(this.value);"><option value="">Ville</option>
    	<?php
            while ($ville=mysql_fetch_array($query))
                    {
                    ?>
    		<option value="<?php echo $ville['id']; ?>"><?php echo htmlentities($ville['ville']); ?></option>
    		<?php
                    }
                    ?>
    	</select>
    	<?php
            }
    mysql_close();
    ?>
    C'est irritant d'avoir fait toutes mes liaisons entre villes, cp, departements et regions et de ne pas simplement reussir à afficher ce dernier alors que j'ai fai de la meme maniere que les autres ...

    J'ai affiché la source dans le navigateur et les option de la liste des villes contient bien en value les id des departements .
    Le nom de la table est bien "ville" le id de la table ville se nomme bien "id" dans mysql, le fichier appelé se nomme bien codepostal.php j'ai verifié tout ça plusieurs fois pour m'en assurer alors qu'est-ce qui peut coincer, c'est dingue sa

    Merci encore

  9. #9
    Invité
    Invité(e)
    Par défaut
    name, id, variable, fonction, table,... : tout s'appelle "ville" !!!

    [edit] Et surtout, ca manque de cohérence :
    - l'id du select est "ville" (dont la value est l'id de la ville)
    - dans la fonction ville(villes), la variable s'appelle... "villes" !! (alors que c'est toujours l'id de la ville) Une chatte y perdrait ses petits !

    La prochaine fois, pense à identifier clairement, distinctement et explicitement tes paramètres :
    table -> t_villes ou tab_villes
    id -> idville ou villeid
    name -> ville ou nameville
    row -> $vil ou $row_ville
    ...

    Au moins, tu/on y verrais/t plus clair, non ?

  10. #10
    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 : 53
    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
    Citation Envoyé par jreaux62
    name, id, variable, fonction, table,... : tout s'appelle "ville" !!!
    Une chatte y perdrait ses petits !
    Tu exagères quand même... le paramètre passé à la fonction ville(), c'est "villes" !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #11
    Invité
    Invité(e)
    Par défaut
    Tu as raison Bovino,
    d'où cet [edit] :

    Et surtout, ca manque de cohérence :
    - l'id du select est "ville" (dont la value est l'id de la ville)
    - dans la fonction ville(villes), la variable s'appelle... "villes" !! (alors que c'est toujours l'id de la ville)


    Plus sérieusement :
    -> Plusieurs listes liées
    -> Listes liées Ajax : XMLHttpRequest ou Jquery ?
    Perso, je te recommande Ajax avec jQuery :
    c'est beau, c'est clair, c'est efficace ! L'essayer, c'est l'adopter !

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    oui j'avais changé, avant c'était ville aussi, j'ai mis villes pour dissocier un peu tout ça

  13. #13
    Invité
    Invité(e)
    Par défaut
    document.getElementById("code").innerHTML=xhr.responseText;
    Cela suppose que tu as un <div id="code"></div> ou <p id="code"></p> quelque part, non ?
    Où est-il ?

    cuisto44000, tu nous fais une drôle de cuisine !
    Il faudra faire des efforts pour devenir un MasterChef en programmation !
    Je te mets la note de 5.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    je te le donne en mille : oui
    <tr><th>Code postale *</th><td><div id="code"></div></td></tr>

  15. #15
    Invité
    Invité(e)
    Par défaut
    - Mets un alert(xhr.responseText); dans le code javascript, pour savoir si ca renvoie quelque chose ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     	alert('response : '+xhr.responseText);
     	var requete="villes="+villes;
     	alert('requete : '+requete);
    	xhr.open("POST", "composants/inscription/codepostal.php", true);
    - vérifie si le chemin d'accès est le bon (composants/inscription/codepostal.php) ;
    - teste "à part" le fichier appelé par ajax, pour vérifier qu'il fonctionne ;
    - ...

    Ps : à priori, tu peux juste écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><th>Code postale *</th><td id="code">&nbsp;</td></tr>

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    j'ai déja testé en ne mattant que un mot, sans php rien dautre dans le fichier cp.php; sa retourne rien, et si la requete etait lancée, les if dans le javascript me mettraient aumoins le loader.gif

    edit : J'ai testé le &nbsp; sa change rien
    re edit : le fichier a par entiere affiche bien le textarea

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cuisto44000 Voir le message
    ...dans le fichier cp.php; sa retourne rien
    ???
    -> composants/inscription/codepostal.php !?!

    cp.php ou codepostal.php ??
    Il faut savoir !

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    oups ... pardon c'est que ce fichier se nommait comme celà avant, toutes mes plus plates excuses ! donc c'est bien codepostal.php

  19. #19
    Invité
    Invité(e)
    Par défaut
    Peux-tu remettre les codes complets ? (avec le nom correct des pages)

    + le code html généré

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    inscription.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
     
    <form method="post" action="?req=inscription#message">
    			<div class="floatleft">
    				<table>
    					<tr><th>Pseudo *</th><td><input type="text" name="pseudo" id="pseudo" maxlength="30" value="<?php echo $_POST['pseudo']; ?>"></td></tr>
    					<tr><th>Mot de passe *</th><td><input type="password" name="pass" id="pass" maxlength="30"></td></tr>
    					<tr><th>Confirmation *</th><td><input type="password" name="md5" id="md5" maxlength="30"></td></tr>
    					<tr><th>Mail *</th><td><input type="text" name="mail" id="mail" maxlength="150" value="<?php echo $_POST['mail']; ?>"></td></tr>
    					<tr><th>A propos de vous *</th><td><select name="sexe" id="sexe"><option value="" <?php if ($_POST['sexe']==""){?> selected="selected"<?php } ?>></option><option value="M." <?php if ($_POST['sexe']=="M."){?> selected="selected"<?php } ?>>M.</option><option value="Mme" <?php if ($_POST['sexe']=="Mme"){?> selected="selected"<?php } ?>>Mme</option><option value="Mlle" <?php if ($_POST['sexe']=="Mlle"){?> selected="selected"<?php } ?>>Mlle</option></select></td></tr>
    					<tr><th>Nom *</th><td><input type="text" name="nom" id="nom" maxlength="100" value="<?php echo $_POST['nom']; ?>"></td></tr>
    					<tr><th>Prénom *</th><td><input type="text" name="prenom" id="prenom" maxlength="150" value="<?php echo $_POST['prenom']; ?>"></td></tr>
    					<tr><th>adresse *</th><td><input type="text" name="adresse" id="adresse" maxlength="100" value="<?php echo $_POST['adresse']; ?>"></td></tr>
    					<tr><th>Région *</th><td><?php include 'composants/inscription/regions.php'; ?></td></tr>
    					<tr><th>Département *</th><td><div id="depart"></div></td></tr>
    					<tr><th>Ville *</th><td><div id="vill"></div></td></tr>
    					<tr><th>Code postale *</th><td><div id="code"></div></td></tr>
    				</table>
    			</div>
    			<div class="floatleft">
    				<table>
    					<tr><th>Téléphone fixe</th><td><input type="text" name="fixe" id="fixe" maxlength="30" value="<?php echo $_POST['fixe']; ?>"></td></tr>
    					<tr><th>Téléphone portable</th><td><input type="text" name="portable" id="portable" maxlength="30" value="<?php echo $_POST['portable']; ?>"></td></tr>
    					<tr><th>Vous êtes *</th><td><select name="qualite" id="qualite" onChange="affiche_pro(this.value);"><option value="" <?php if ($_POST['qualite']==""){?> selected="selected"<?php } ?>></option><option value="porteur de projet" <?php if ($_POST['qualite']=="porteur de projet"){?> selected="selected"<?php } ?>>porteur de projet</option><option value="professionnel automobile" <?php if ($_POST['qualite']=="professionnel automobile"){?> selected="selected"<?php } ?>>professionnel automobile</option><option value="professionnel du bâtiment" <?php if ($_POST['qualite']=="professionnel du bâtiment"){?> selected="selected"<?php } ?>>professionnel du bâtiment</option></select></td></tr>
    				</table>
    				<div id="pro">
    					<?php
    					if ($_POST['qualite']==("" || ""))
    						{
    						// ici mettre la fonction des champs pros !
    						// fonction pro php a créer !
    						}
    					?>
    				</div>
    			</div>
    			<div id="clear"></div>
    			<br>
    			<div align="center">
    				* <small><em>Les champs marqués d' une étoile sont obligatoires, sauf les champs en dessous du titre "Les professionnels" pour les particuliers .</em></small>
    				<br><br>
    				Afin de valider votre inscription, veuillez lire et accepter les <a onClick="window.open('?req=termes')" title="Conditions générales d'utilisation">conditions générales d'utilisation</a><br>
    				<br>
    				<select name="terme" id="terme"><option value="refuse" <?php if ($_POST['terme']=="refuse"){?> selected="selected"<?php } ?>>Je refuse</option><option value="accepte" <?php if ($_POST['terme']=="accepte"){?> selected="selected"<?php } ?>>J'accepte</option></select>
    				<br><br>
    				<input type="submit" name="inscription" value="inscription">
    			</div>
    		<br><br>
    		</form>
    fonctions ajax :
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    /******************************************
    Affichage regions deparetements villes cp
    ******************************************/
     
    // Module de remplissage select departement
    function regions(region)
    	{
    	var xhr = getxhr(region);
    	xhr.onreadystatechange = function() 
    		{
    		if (xhr.readyState == 1) 
    			{
    			document.getElementById("depart").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 2) 
    			{
    			document.getElementById("depart").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 3) 
    			{
    			document.getElementById("depart").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 4 && xhr.status == 200) 
    			{
    			document.getElementById("depart").innerHTML=xhr.responseText;
    			}
    		};
     
     	var requete="reg="+region;
    	xhr.open("POST", "composants/inscription/departement.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send(requete);
    	}
     
    // Module de remplissage select ville
    function dept(dept)
    	{
    	var xhr = getxhr();
    	xhr.onreadystatechange = function() 
    		{
    		if (xhr.readyState == 1) 
    			{
    			document.getElementById("vill").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 2) 
    			{
    			document.getElementById("vill").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 3) 
    			{
    			document.getElementById("vill").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 4 && xhr.status == 200) 
    			{
    			document.getElementById("vill").innerHTML=xhr.responseText;
    			}
    		};
     	var requete="departement="+dept;
    	xhr.open("POST", "composants/inscription/ville.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send(requete);
    	}
     
    // Module de remplissage select ville
    function ville(villes)
    	{
    	var xhr = getxhr();
    	xhr.onreadystatechange = function() 
    		{
    		if (xhr.readyState == 1) 
    			{
    			document.getElementById("code").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 2) 
    			{
    			document.getElementById("code").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 3) 
    			{
    			document.getElementById("code").innerHTML="<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 4 && xhr.status == 200) 
    			{
    			document.getElementById("code").innerHTML=xhr.responseText;
    			}
    		};
     
     	var requete="villes="+villes;
    	xhr.open("POST", "composants/inscription/codepostal.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send(requete);
    	}
    regions.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
     
    <?php
    db_connect();
    $query=mysql_query("SELECT * FROM region");
            ?>
    	<div>
    	<select name="region" id="region" onChange="regions(this.value);"><option value="">Région</option>
    	<?php
            while ($r=mysql_fetch_array($query))
                    {
                    ?>
    		<option value="<?php echo $r['id']; ?>"><?php echo $r['region']; ?></option>
    		<?php
                    }
            mysql_close();
            ?>
    	</select>
    	</div>
    departement.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
     
    <?php
    /* Connexion MYSQL */
     
    mysql_connect($host,$user,$pass);
    mysql_select_db($user);
    if (isset($_POST['reg']))
            {
            $reg=$_POST['reg'];
            $query=mysql_query("SELECT * FROM departement WHERE id_region='$reg'");
            ?>
    	<select name="departement" id="departement" onChange="dept(this.value);"><option value="">D&eacute;partement</option>
    	<?php
            while ($dep=mysql_fetch_array($query))
                    {
                    ?>
    		<option value="<?php echo $dep['id']; ?>"><?php echo htmlentities($dep['departement']); ?></option>
    		<?php
                    }
                    ?>
    	</select>
    	<?php
            }
    mysql_close();
    ?>
    ville.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
     
    <?php
    /* Connexion MYSQL */
     
    mysql_connect($host,$user,$pass);
    mysql_select_db($user);
     
    if (isset($_POST['departement']))
            {
            if ($_POST['departement']<=10)
                    {$departement="0".$_POST['departement'];}
            else
                    {$departement=$_POST['departement'];}
            $query=mysql_query("SELECT * FROM ville WHERE id_departement='$departement'");
            ?>
    	<select name="ville" id="ville" onChange="ville(this.value);"><option value="">Ville</option>
    	<?php
            while ($ville=mysql_fetch_array($query))
                    {
                    ?>
    		<option value="<?php echo $ville['id']; ?>"><?php echo htmlentities($ville['ville']); ?></option>
    		<?php
                    }
                    ?>
    	</select>
    	<?php
            }
    mysql_close();
    ?>
    codepostal.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
     
    <?php
    /* Connexion MYSQL */
     
    mysql_connect($host,$user,$pass);
    mysql_select_db($user);
    if (isset($_POST['villes']))
            {
            $ville=$_POST['villes'];
            $query=mysql_query("SELECT * FROM ville WHERE id='$ville'");
            $assoc=mysql_fetch_array($query);
            echo '<input type="text" name="cp" value="'.$assoc['cp'].'">';
            }
    mysql_close();
    ?>
    Voilà un peu de lecture :s

    EDIT : Tous ces fichiers sont contenus dans composants/inscription/ sauf le fichier des fonctions ajax mais bon .. il se trouve dans js/ajax.js

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AJAX] chargement page HTML qui ne marche pas (?)
    Par troussepoil dans le forum AJAX
    Réponses: 5
    Dernier message: 27/05/2009, 10h32
  2. Réponses: 8
    Dernier message: 14/05/2009, 22h54
  3. Réponses: 7
    Dernier message: 28/04/2009, 15h45
  4. [AJAX] script ajax qui fonctionne pas tout le temps
    Par krfa1 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/05/2007, 11h12
  5. [AJAX] Script ajax ne fonctionne pas sur IE :( !
    Par Funattitude dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/08/2006, 18h02

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