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] Remplissage de champs automatique


Sujet :

AJAX

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Merci beaucoup, j'ai encore quelques questions.

    J'ai supprimé la fonction go.
    Puis-je également supprimer la fonction getXhr ?
    Le premier code que tu m'as donné correspond-t-il à la fonction Ajax.Refresh ? Car la fonction appelée est "Ajax.Request".

    Dans cette fonction, il me faut remplacer XXXXXX par la valeur de "nom", mais comment récupérer la valeur d'un input "autocomplété" ?

  2. #22
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par Ben-o Voir le message
    Merci beaucoup, j'ai encore quelques questions.

    J'ai supprimé la fonction go.
    Puis-je également supprimer la fonction getXhr ?
    Oui
    Le premier code que tu m'as donné correspond-t-il à la fonction Ajax.Refresh ? Car la fonction appelée est "Ajax.Request".
    C'est bien Ajax.request
    Dans cette fonction, il me faut remplacer XXXXXX par la valeur de "nom", mais comment récupérer la valeur d'un input "autocomplété" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="nom" id="nom" ...
    donc XXXX vaut document.getElementById("nom").value

    ERE

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Merci, voici donc à quoi ressemble ma 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
    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
     
    ...
     
    <script type="text/javascript" src="../../scripts/prototype.js"></scrip>
    <script type="text/javascript" src="../../scripts/scriptaculous.js"></scrip>
     
    </head>
     
    <body>
    	<form>
    		<fieldset>
    			<legend>Champs liés</legend>
    				<label>Nom contact</label>
    					<input type="text" name="nom" id="nom" onchange='goPrenom()' />
    						<div id="auto_noms"></div>
    							<script type="text/javascript">
    								new Ajax.Autocompleter (
    									'nom',
    									'auto_noms',
    									'autocompleter_noms.php',
    									{method: 'post', paramName: 'nom'}
    								);
    							</script>
     
    				<label>Prénom contact</label>
    					<input type="text" name="prenom" id="prenom" />
    						<div id='auto_prenom'>
    							<script type="text/javascript">
    								new Ajax.Request('ajax_autocomplete2.php', {
    									method: 'post',
    									parameters : "nom_contact=" + document.getElementById("nom").value
    									onSuccess: function(transport) {
    										//transport.responseText est le texte récupéré par l'appel
    										//Inscrire le prenom dans la zone de texte  
    									});
    								});
    							</script>
    						</div>
    		</fieldset>
    	</form>
    </body>
    Ca ne fonctionne toujours pas. Il me manque à renseigner le onSuccess, mais comment ?

    Le boulet ^^

  4. #24
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Certainement ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("prenom").value=transport.responseText
    ERE

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Merci.

    Il doit me manquer quelque chose, le prénom n'est pas récupéré

    Fichier test_autocomplete.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
    <script type="text/javascript" src="../../scripts/prototype.js"></script>
    <script type="text/javascript" src="../../scripts/scriptaculous.js"></script>
     
    </head>
     
    <body>
    	<form>
    		<fieldset>
    			<label>Nom contact</label>
    				<input type="text" name="nom" id="nom" onchange='goPrenom()' />
    					<div id="auto_noms"></div>
    						<script type="text/javascript">
    								new Ajax.Autocompleter (
    								'nom',
    								'auto_noms',
    								'autocompleter_noms.php',
    								{method: 'post', paramName: 'nom'}
    							);
    						</script>
     
    			<label>Prénom contact</label>
    				<input type="text" name="prenom" id="prenom" />
    					<script type="text/javascript">
    						new Ajax.Request('ajax_autocomplete.php', {
    							method: 'post',
    							parameters : "nom_contact=" + document.getElementById("nom").value
    							onSuccess: function(transport) {
    document.getElementById("prenom").value=transport.responseText
    								});
    							});
    						</script>
    					</div>
    	</fieldset>
    </form>
    </body>
    Fichier ajax_autocomplete.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    	if(isset($_POST["nom_contact"])) {
    		include ('../fonction_connexion.php');
    		$res = mysql_query("SELECT * FROM t_gestion_contacts WHERE nom_contact = ".$_POST["nom_contact"]."");
    		while($row = mysql_fetch_assoc($res)) {
    			//echo "<input type='text' value='".$row["prenom_contact"]."' />";
    			echo $row["prenom_contact"];
    			break; //peut pas avoir plusieurs prénoms sinon 1 N aberrant		
    		}
    	}
    ?>

  6. #26
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Ton script php est il au moins appelé ?

    ERE

  7. #27
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Il est appelé dans le Ajax.Request non ?

  8. #28
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Oui, mais est il réellement appelé sur ton server ?

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut


    Le script ne me récupérait rien en effet, une erreur au niveau de la syntaxe de la requête.
    J'ai rectifié et testé, le prénom est bien récupéré par la requête maintenant, par contre toujours pas dans mon champ prénom

  10. #30
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Zen...

    Dans le onSuccess mets un alert(transport.responseText); pour vérifier que tu récupères bien le prénom.


    ERE

  11. #31
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    J'ai rajouté l'"alert" de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    new Ajax.Request('ajax_autocomplete2.php', {
    	method: 'post',
    	parameters : "nom_contact=" + document.getElementById("nom").value
    	onSuccess: function(transport) {
    		document.getElementById("prenom").value=transport.responseText;
    		alert(transport.responseText);
    	});
    });
    mais il ne m'affiche rien, le prénom n'est donc pas récupéré.
    Qu'est-ce qui peut clocher ?

  12. #32
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Mets le alert avant le document.get..., parce que si c'est lui qui fait planter...

    ERE

  13. #33
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Pas de message non plus en mettant le alert avant le document.get

    Sinon c'est normal qu'il y ait une parenthèse entre l'accolade et le point virgule pour fermer le onSuccess ? Parce qu'il y en a déjà une (de parenthèse) pour fermer le new Ajax.Request.

  14. #34
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Non...et manque une virgule sur la ligne parameters ... c'est sûr que cela fonctionne moins bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    new Ajax.Request('ajax_autocomplete2.php', {
    	method: 'post',
    	parameters : "nom_contact=" + document.getElementById("nom").value,
    	onSuccess: function(transport) {
    		alert(transport.responseText);
    		document.getElementById("prenom").value=transport.responseText;
    	} //onSuccess
           } //options
    ); //Ajax.Request
    ERE

  15. #35
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    désolé si j'enfonce des portes ouvertes (j'ai pas absolument tout lu en détail ) mais :
    • les dernières versions du scripts font toujours référence à une fonction goPrenom() alors que sa déclaration n'est présente nulle part
    • Dans le Ajax.Request() associé au prénom, rien ne semble indiquer, justement, l'association avec un évènement de l'input "prenom". Alors que c'est bien le cas dans les paramètres du Ajax.Autocompleter () associé au "nom"
    Mais bon, je n'utilise pas ces librairies

    A+

  16. #36
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Effectivement, je viens de me rendre compte de cela.

    J'ai donc essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">
    	function goPrenom(){
    		new Ajax.Request('ajax_autocomplete2.php', {
    			method: 'post',
    			parameters: "nom_contact=" + document.getElementById("nom").value,
    			onSuccess: function(transport) {
    				alert(transport.responseText);
    				document.getElementById("prenom").value=transport.responseText;
    			} // onSuccess
    		} // options
    		); // Ajax.Request
    	} // function goPrenom
    </script>
    J'ai bien l'alerte qui s'affiche (uniquement quand j'actualise la page) mais vide

  17. #37
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    @E.Bzz: merci je n'avais pas vérifié cette partie

    @Ben-o: publie l'état de tes scripts car si tu as fait une fonction goPrenom je ne suis pas persuadé que tu l'appelles correctement

    ERE

  18. #38
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Voici donc la page test_autocomplete2.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
    <script type="text/javascript" src="../../scripts/prototype.js"></script>
    <script type="text/javascript" src="../../scripts/scriptaculous.js"></script>
     
    </head>
     
    <body>
    	<form>
    		<fieldset>
    			<legend>Champs liés</legend>
    				<label>Nom contact</label>
    					<input type="text" name="nom" id="nom" onchange='goPrenom()' />
    						<div id="auto_noms"></div>
    							<script type="text/javascript">
    								new Ajax.Autocompleter (
    									'nom',
    									'auto_noms',
    									'autocompleter_noms.php',
    									{method: 'post', paramName: 'nom'}
    								);
    							</script>
     
    				<label>Prénom contact</label>
    					<input type="text" name="prenom" id="prenom" />
    						<div id='auto_prenom'>
    							<script type="text/javascript">
    								function goPrenom(){
    									new Ajax.Request('ajax_autocomplete2.php', {
    										method: 'post',
    										parameters: "nom_contact=" + document.getElementById("nom").value,
    										onSuccess: function(transport) {
    											alert(transport.responseText);
    											document.getElementById("prenom").value=transport.responseText;
    										} // onSuccess
    									} // options
    									); // Ajax.Request
    								} // function goPrenom
    							</script>
    						</div>
    		</fieldset>
    	</form>
    </body>
     
    </html>
    et la page ajax_autocomplete2.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
    <?php
     
    $nom_contact_recupere = $_POST["nom_contact"];
     
            if(isset($nom_contact_recupere)) {
                    include ('../fonction_connexion.php');
                    $res = mysql_query("SELECT * FROM t_gestion_contacts WHERE nom_contact = '$nom_contact_recupere'");
                    while($row = mysql_fetch_assoc($res)) {
                            //echo "<input type='text' value='".$row["prenom_contact"]."' />";
                            echo $row["prenom_contact"];
                            break; //peut pas avoir plusieurs prénoms sinon 1 N aberrant           
                    }
            }
    ?>

  19. #39
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Si c'est celle-là la balise form n'a ni submit ni rien ?

    ERE

  20. #40
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    J'ai mis une balise <form> vide pour les tests en effet. C'est ça qui bloque tu crois ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/06/2016, 20h13
  2. [AC-2003] Remplissage d'un champ automatiquement
    Par jmsamson dans le forum Access
    Réponses: 1
    Dernier message: 30/03/2011, 11h25
  3. [AC-2003] Remplissage de champs automatique dans formulare
    Par Lafouine4478 dans le forum IHM
    Réponses: 15
    Dernier message: 17/02/2011, 15h45
  4. [AJAX] remplissage des champs a partir d'une donne dans un autre champ
    Par zied.ellouze dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/02/2009, 10h07
  5. [AJAX] Remplissage automatique d'un champ à partir d'un évênement
    Par joss91 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/01/2008, 18h10

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