Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    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

  2. #2
    Membre confirmé Avatar de Njörd
    Homme Profil pro
    Inscrit en
    janvier 2010
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2010
    Messages : 170
    Points : 249
    Points
    249

    Par défaut

    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.

  3. #3
    Membre du Club

    Homme Profil pro Sébastien DAMART
    Développeur Web
    Inscrit en
    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 : 58
    Points
    58

    Par défaut

    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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •