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 :

Retour des valeurs à la place d'une mise à jour d'affichage


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 24
    Points : 31
    Points
    31
    Par défaut Retour des valeurs à la place d'une mise à jour d'affichage
    Bonjour,

    J'aurais besoin de votre aide pour modifier un code qui fonctionne mais que j'aimerais améliorer et apprendre à faire pour progresser. Merci.

    Au lieu de changer l'affichage (et économiser les echo php), j'aimerais retourner à la page HTML les 4 données ($donnees['***']) et les afficher directement dans la div Resultat.
    Je pense qu'il faut modifier la partie $.ajax({***}) en utilisant peut-être json mais je ne sais pas comment faire.

    Merci pour vos conseils et vos explications.

    Cordialement

    ---

    Voici mon code :

    Page HTML :
    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
     
    <form>
    	<label>RNE : </label><br /><input type="text" value="" size="10" maxlength="8" id="RNE" /><span class="erreur-msg" ></span>
    	<div id="Resultat">
    		<input type="text" placeholder="Nom de l\'&eacute;tablissement ou de l\'&eacute;cole" name="lieu_exercice" size="60" value="" />
    		<input type="text" placeholder="Adresse du lieu d\'exercice" name="adresse_exercice" size="60" value="" /><br />
    		<table>
    			<tr>
    				<td><input type="text" placeholder="Code postal" name="CP_exercice" size="10" maxlength="5" style="text-align:center;" value="" /></td>
    				<td style="width:50px;"></td>
    				<td><input type="text" placeholder="Commune" name="commune_exercice" size="30" value="" /></td>
    			</tr>
    		</table>
    	</div>
    </form>
    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
     
    <script language="JavaScript">
    	$("#RNE").change(function() {
    		var RNE=$('#RNE').val();
    		var reg=new RegExp('^[0-9]{7}[a-z A-Z]{1}$','g');
    		if (RNE.length>0) {
    			if (reg.test(RNE)) {
    				$('#RNE').next('.erreur-msg').fadeOut();
    				$.ajax({
    					type	: 'post',
    					url		: 'etablissement.php',
    					data	: 'RNE='+RNE,
    					success	: function(txthtml) {$('#Resultat').html(txthtml);}
    				});
    			} else {
    				$('#RNE').next('.erreur-msg').fadeIn().text('Veuillez entrer un numéro d\'établissement de 7 chiffres et 1 lettre');
    			}
    		}
    	});
    </script>
    Page 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
     
    <?php
    	include ('connexion.php');
    	$RNE=(isset($_POST['RNE']))?$_POST['RNE']:0;
    	$RNE=strtoupper($RNE);
    	$bdd=new PDO('mysql:host='.$Serveur.';dbname='.$Bdd3,$Login3,$Password3);
    	$reponse=$bdd->query('SELECT * FROM rne WHERE id="'.$RNE.'"');
    	$donnees=$reponse->fetch();
    	$reponse->closeCursor();
    	echo '<input type="text" placeholder="Nom de l\'&eacute;tablissement ou de l\'&eacute;cole" name="lieu_exercice" size="60" value="'.utf8_encode($donnees['nom']).'" />';
    	echo '<input type="text" placeholder="Adresse du lieu d\'exercice" name="adresse_exercice" size="60" value="'.utf8_encode($donnees['adresse']).'" /><br />';
    	echo '<table><tr>';
    	echo '<td><input type="text" placeholder="Code postal" name="CP_exercice" size="10" maxlength="5" style="text-align:center;" value="'.$donnees['code_postal'].'" /></td>';
    	echo '<td style="width:50px;"></td>';
    	echo '<td><input type="text" placeholder="Commune" name="commune_exercice" size="30" value="'.$donnees['commune'].'" /></td>';
    	echo '</tr></table>';
    ?>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Fichier 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
    <?php
    	include ('connexion.php');
    	$RNE=(isset($_POST['RNE']))? (int)$_POST['RNE']:0; // (int) -> IL FAUT PROTEGER la VARIABLE, OU UTILISER UNE REQUETE PREPAREE !!
    	$RNE=strtoupper($RNE);
    	$bdd=new PDO('mysql:host='.$Serveur.';dbname='.$Bdd3,$Login3,$Password3);
     
    	$reponse=$bdd->query('SELECT nom, adresse, code_postal, commune	'. // INUTILE DE METTRE * quand on sait ce qu'on veut récupérer
    						' FROM rne WHERE id="'.$RNE.'"');
     
    	$donnees=$reponse->fetch();
    	$reponse->closeCursor();
     
    	$retour['nom'] = $donnees['nom'];
    	$retour['adresse'] = $donnees['adresse'];
    	$retour['cp'] = $donnees['code_postal'];
    	$retour['commune'] = $donnees['commune'];
    echo json_encode($retour);
    JavaScript, modification de la partie "ajax" :
    Code JavaScript : 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
    		// -----------------
    		var textjson		= '';
    		$.ajax({
    			url:			'etablissement.php',
    			type:			'post',
    			data:			'RNE='+RNE,
    			dataType:		'json',		// récupération en JSON
    			cache:		false,
    			success:		function( textjson ){
    				// affichage : (A ADAPTER !)
    				$('#idnom').val(textjson.nom);	
    				$('#idadresse').val(textjson.adresse);	
    				$('#idcp').val(textjson.cp);	
    				$('#idcommune').val(textjson.commune);	
     
    				return false;
    			}
    		});
    		// -----------------
    N.B. Si c'est pour remettre dans les <input>, il faut leur donner des id ("idnom", "idadresse",...).

Discussions similaires

  1. Récupérer des valeurs à l'aide d'une procédure stockée
    Par Contact2012 dans le forum Développement
    Réponses: 7
    Dernier message: 02/09/2008, 15h02
  2. Réponses: 9
    Dernier message: 29/08/2008, 14h35
  3. Réponses: 8
    Dernier message: 22/05/2008, 10h18
  4. Pas de retour des valeurs NULL
    Par titmael dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/12/2007, 14h41
  5. [C#] Conserver des valeurs de propriétés d'une page
    Par elod38 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 10h53

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