Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/12/2011, 00h42   #1
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
Par défaut 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 :
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 :
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 :
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 :
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 .
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 08h30   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
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 :
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>';
		}
	};
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 08h43   #3
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
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 ...
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 08h44   #4
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
et oui biensure avant de poster j'avais fait ces verifs merci encore tout de meme .
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 08h50   #5
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
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).
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 08h56   #6
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
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 ...
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 11h02   #7
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 139
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 139
Points : 7 276
Points : 7 276
Il se peut que tu as une erreur serveur
Essaie avec:
Code :
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>';
}
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 14h40   #8
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
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 :
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 :
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 :
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
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 15h25   #9
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
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 ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 15h33   #10
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 789
Points : 35 789
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 15h35   #11
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Tu as raison Bovino,
d'où cet [edit] :

Citation:
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 !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 16h35   #12
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
oui j'avais changé, avant c'était ville aussi, j'ai mis villes pour dissocier un peu tout ça
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 16h55   #13
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Citation:
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.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h00   #14
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
je te le donne en mille : oui
<tr><th>Code postale *</th><td><div id="code"></div></td></tr>
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h06   #15
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
- Mets un alert(xhr.responseText); dans le code javascript, pour savoir si ca renvoie quelque chose ;
Code :
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 :
<tr><th>Code postale *</th><td id="code">&nbsp;</td></tr>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h07   #16
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
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
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h12   #17
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
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 !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h27   #18
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
oups ... pardon c'est que ce fichier se nommait comme celà avant, toutes mes plus plates excuses ! donc c'est bien codepostal.php
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h57   #19
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Peux-tu remettre les codes complets ? (avec le nom correct des pages)

+ le code html généré
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 18h11   #20
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
inscription.php
Code :
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 :
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 :
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 :
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 :
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 :
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
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h39.


 
 
 
 
Partenaires

Hébergement Web