Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 16/12/2012, 19h27   #1
Justsohy
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2012
Messages : 2
Points : 0
Points : 0
Par défaut Requête AJAX avec données SQL

Bonsoir à tous,

Je bloque sur ma requête ajax qui doit remplir des champs input type='text' avec des données de ma base SQL.

Fonctionnement:
- J'ai un SELECT avec comme value ma liste de clients SQL. (Aucun problème)
J'ai mis en 'OnChange=' ma fonction javascript (Ajax) avec comme params
la value de mon select.
- Quand je choisi, il doit m'afficher les infos du client dans plusieurs inputs text (nom, prenom, etc...)

Pour le moment, quand je change mon select, l'ODD de Chrome m'alerte.

Voici le code de ma page:
Code html :
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
<div align='center' id="modifier">
	    <div>
		<SELECT name='listeid' id="listeid" onChange="javascript:donnees()">
			<?php
				$rs= connection('SELECT idcontact,nom,prenom FROM contact');
 
				while($info=$rs->fetch_object())
					{  
					echo '<OPTION VALUE="'.$info->idcontact.'">'.$info->idcontact.' '.$info->nom.' '.$info->prenom.'</OPTION>';
					}
			?>
		</SELECT>
	    </div>
	    <br>
 
		<table>
			<tr>
				<td> IdContact:</td>
				<td><input type='text' id='idcontact' value='' readonly="readonly"	></td>
			</tr>
			<tr>
				<td> Nom:</td>
				<td><input type='text' id='modnom' value='' ></td>
			</tr>
			<tr>
				<td>Prénom:</td>
				<td><input type='text' id='modprenom' value='' ></td>
			</tr>
			<tr>
				<td> Adresse:</td>
				<td><input type='text' id='modadresse' value='' ></td>
			</tr>
			<tr>
				<td>CP:</td>
				<td><input type='text' id='modcp' value='' ></td>
			</tr>
			<tr>
				<td> Ville:</td>
				<td><input type='text' id='modville' value='' ></td>
			</tr>
			<tr>
				<td>Tel:</td>
				<td><input type='text' id='modtel' value='' ></td>
			</tr>
			<tr>
				<td> IdGroupe:</td>
				<td><input type='text' id='modidgroupe' value='' ></td>
			</tr>
		</table>
			</br>
				<input type='button' class='BoutonVert' onclick='' value='Modifier'/>
				<input type='button' class='BoutonRouge' onclick='' value='Réinitialiser'/>
	</div>

Celui de ma fonction:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function donnees()
		{
			var Monurl = "sql/donnees.php";
			var params = {'listid':document.getElementById('listeID').value};
			$.ajax ({
					'url':Monurl,
					'dataType':'text',
					'data': params,
					'type':'POST',
 
				'success': 
					function(data)
					{
 
					}
					});
		}
Et le fichier appelé:
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php  
	include_once('connection.php');        
	$rs= connection("SELECT nom,prenom,telephone,adresse,codepostal,ville,idgroupe FROM contact WHERE idcontact ="$_POST['listid']"");
	while($info=$rs->fetch_object())  
		{  $tab=array(
		   $idcontact=$info->idcontact;
		   $modnom=$info->nom;
		   $modprenom=$infp->prenom;
		   $modadresse=$info->adresse;
		   $modcp=$info->cp;
		   $modville=$info->ville;
		   $modtel=$info->tel.;
		   $modidgroupe=$info->idgroupe.;
		);
 
 
?>

Pourquoi cela ne fonctionne pas ?
Cordialement
Justsohy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 18h20   #2
Njörd
Membre habitué
 
Avatar de Njörd
 
Homme
Inscription : janvier 2010
Messages : 108
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2010
Messages : 108
Points : 123
Points : 123
Bonjour Justsohy,

Que te dis l'ODD de Chrome ?

Sinon, pour le moment ton code n'affichera rien dans tes inputs car :
- tu ne renvois à aucun moment ton tableau $tab au callback (fait un echo)
- tu auras des soucis pour lire ce tableau si tu ne le parses pas en XML ou JSON (ex: la fonction json_encode() de php avant de faire le écho)
- une fois réceptionné les données du tableau dans ton success, il faut peupler les inputs avec tes données.

Edit: l'attribut onchange de ton select attend déjà un événement javascript, inutile donc de rajouter le "javascript:" devant le nom de ta fonction.
Njörd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2012, 09h23   #3
sdamart
Membre du Club
 
Homme Sébastien DAMART
Développeur Web
Inscription : septembre 2012
Messages : 29
Détails du profil
Informations personnelles :
Nom : Homme Sébastien DAMART
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2012
Messages : 29
Points : 65
Points : 65
1 autre problème, tu envoi tes données au format text mais elle sont en JSON.
Njörd a raison.
coté serveur
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php  
	include_once('connection.php');        
	$rs= connection("SELECT nom,prenom,telephone,adresse,codepostal,ville,idgroupe FROM contact WHERE idcontact ="$_POST['listid']"");
 
	while($info=$rs->fetch_object())  
		{ 
                  echo "{
		   idcontact : \"".$info->idcontact.""\",".
		   "modnom : \"".$info->nom."\",".
		   "modprenom : "\"".$infp->prenom."\",".
		   "modadresse : "\"".$info->adresse."\",".
		   "modcp : "\"".$info->cp."\",".
		   "modville : "\"".$info->ville."\",".
		   "$modtel : "\"".$info->tel."\",";
		   "modidgroupe : "\"".$info->idgroupe."\"}";
		}
 
?>
Coté client ta fonction va récupérer les données et les placer au endroit adéquat
Code :
1
2
3
4
5
6
7
//[...]
success:function(data){
var _data=eval("("+data+")");
for(var field in _data){
$('#'+field).val(_data[field]);
}
}
Bonne Chance
sdamart est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h11.


 
 
 
 
Partenaires

Hébergement Web