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

jQuery Discussion :

jquery .val() sur input undefined


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 21
    Points
    21
    Par défaut jquery .val() sur input undefined
    Bonjour, m’intéressant de plus en plus a l'ajax, j'essai d'en metre ou je peu car je trouve le rendu très sympa.

    le probleme est pour un formulaire que j'ai fait ou quand j'esai de recuperer les infos contenu dans les input ( de type text ) avec la fonction val de jquery je me retrouve avec que des variable non définit.

    pour que sa soit plus parleur, voici le code qui pose probleme.

    le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form id="form_modif">
    <div style="float:left; width:350px;margin-top:15px;margin-left:65px;"><input type="text" id="info_nom" name="info_nom" value="<? echo $row['nom']; ?>"><br>
    <input type="text" id="info_adresse1" name="info_adresse1" value="<? echo $row['adresse1']; ?>"><br>
    <input type="text" id="info_adresse2" name="info_adresse2" value="<? echo $row['adresse2']; ?>"><br>
    <input type="text" id="info_codepostal" name="info_codepostal" value="<?php echo $row['codepostal']; ?>" size="6">
    <input type="text" id="info_ville" name="info_ville" value="<?php echo $row['ville']; ?>">
    </div>
    <div style="float:left;margin-top:15px">
    <input type="text" id="info_tel1" name="info_tel1" value="<? echo $row['tel1']; ?>"><br>
    <input type="text" id="info_tel2" name="info_tel2" value="<? echo $row['tel2']; ?>"><br>
    <input type="text" id="info_email" name="info_email" value="<? echo $row['email']; ?>"></div>
    <input type="submit" value="essai"></form>
    et voici la fonction JS qui est censé produire ce que je veux:
    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
    $(function() {
     
    $("#form_modif").submit(function() {
     
     
    $(".info_client").html('<img src="style/ajax-loader.gif" />');
    alert("nom="+$('#info_nom').val()+"&adresse1="+$('#info_adresse1').val()+"&adresse2="+$('#info_adresse2').val()+"&codepostal="+$('#info_codepostal').val()+"&ville="+$('#info_ville').val()+"&tel1="+$('#info_tel1').val()+"&tel2="+$('#info_tel2').val()+"&email="+$('#info_email').val());
    	$.ajax({
    		type: "POST",
      		url: "include/valid_info_espace_client.php",
     		data: "nom="+$('#info_nom').val()+"&adresse1="+$('#info_adresse1').val()+"&adresse2="+$('#info_adresse2').val()+"&codepostal="+$('#info_codepostal').val()+"&ville="+$('#info_ville').val()+"&tel1="+$('#info_tel1').val()+"&tel2="+$('#info_tel2').val()+"&email="+$('#info_email').val(),
     
      		success: function(html){
    				 $(".info_client").empty();
     				 $(".info_client").append(html);
     				 $(".info_client_legend").html('<b>Mes coordonnées : <a href="" class="modif_info_client" style="margin-left:15px;">Modifier mes informations</a></b>');
     
     					}
    });
     
     
     
        return false;
    	});
     
    });
    donc tout a l'air de fonctionner sauf les variable qui reste non définit....

    voila ce que donne l'alerte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nom=undefined&adresse1=undefined&adresse2=undefined&codepostal=undefined&ville=undefined&tel1=undefined&tel2=undefined&email=undefin
    ed
    Pour info ( meme si sa ne sert a rien dans le probleme ):
    .info_client correspond a la div ou se situe le formulaire ( elle meme dans un fieldset )
    .info_client_legend correspond a la legend du fieldset

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 919
    Points
    44 919
    Par défaut
    Bonsoir,
    as tu regardé du coté de la méthode $("#form_modif").serialize();

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par doncandid Voir le message
    Pour info ( meme si sa ne sert a rien dans le probleme )... .info_client ...
    Ben si, justement. Le problème était là ...
    Comme quoi, il est toujours bon de donner des informations sur ce qui se passe "autour" du problème présumé ...
    Et comme le dit Mulder à Scully :
    "... La Vérité est ailleurs ..."
    après avoir testé le code ... :
    -> il faut d'abord récupérer les valeurs AVANT de remplacer le formulaire par l'image ajax-loader.gif
    C'est en testant avec le formulaire "hors" du div que j'ai vu le problème (plus exactement : il n'y avait plus de problème)
    Ca donne :
    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
    	$(function() {
     
    		$("#form_modif").submit(function() {
    			var info_nom = $('#info_nom').val();
    			var info_adresse1 = $('#info_adresse1').val();
    			var info_adresse2 = $('#info_adresse2').val();
    			var info_codepostal = $('#info_codepostal').val();
    			var info_ville = $('#info_ville').val();
    			var info_tel1 = $('#info_tel1').val();
    			var info_tel2 = $('#info_tel2').val();
    			var info_email = $('#info_email').val();
    			// remplacement du formulaire par image
    			$(".info_client").html('<img src="style/ajax-loader.gif" alt="... traitement en cours ..."/>');
    			alert("nom="+info_nom+"&adresse1="+info_adresse1+"&adresse2="+info_adresse2+"&codepostal="+info_codepostal+"&ville="+info_ville+"&tel1="+info_tel1+"&tel2="+info_tel2+"&email="+info_email);
    			$.ajax({
    				type: "POST",
    				url: "include/valid_info_espace_client.php",
    				data: "nom="+info_nom+"&adresse1="+info_adresse1+"&adresse2="+info_adresse2+"&codepostal="+info_codepostal+"&ville="+info_ville+"&tel1="+info_tel1+"&tel2="+info_tel2+"&email="+info_email,
    				success: function(html){
    					 $(".info_client").empty();
    					 $(".info_client").append(html);
    					 $(".info_client_legend").html('<b>Mes coordonnées : <a href="" class="modif_info_client" style="margin-left:15px;">Modifier mes informations</a></b>');
    				}
    			});
    			return false;
    		});
    	});
    Remarques importante html / php :
    remplacer :
    <? -> <?php
    <input ...> -> <input .../>
    <br> -> <br />
    <img src="..."> -> <img src="..." alt="..." />
    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
    <div class="info_client">
    	<form id="form_modif">
    	<fieldset><legend class="info_client_legend">essai formulaire</legend>
    		<div style="float:left; width:350px;margin-top:15px;margin-left:65px;">
    			<input type="text" id="info_nom" name="info_nom" value="<?php echo $row['nom']; ?>"/><br />
    			<input type="text" id="info_adresse1" name="info_adresse1" value="<?php echo $row['adresse1']; ?>"/><br />
    			<input type="text" id="info_adresse2" name="info_adresse2" value="<?php echo $row['adresse2']; ?>"/><br />
    			<input type="text" id="info_codepostal" name="info_codepostal" value="<?php echo $row['codepostal']; ?>" size="6"/>
    			<input type="text" id="info_ville" name="info_ville" value="<?php echo $row['ville']; ?>"/>
    		</div>
    		<div style="float:left;margin-top:15px">
    			<input type="text" id="info_tel1" name="info_tel1" value="<?php echo $row['tel1']; ?>"/><br />
    			<input type="text" id="info_tel2" name="info_tel2" value="<?php echo $row['tel2']; ?>"/><br />
    			<input type="text" id="info_email" name="info_email" value="<?php echo $row['email']; ?>"/>
    		</div>
    		<input type="submit" value="essai"/>
    	</fieldset>
    	</form>
    </div>
    Dernière modification par Invité ; 11/08/2011 à 08h38.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 21
    Points
    21
    Par défaut
    effectivement le problème venais bien de la, merci de ton aide.

    avant ceci je ne savais pas trop utilisé l'ajax, mais a force de tester sa m'a permit d'en apprendre plus, mais sans votre aide j'aurais été coincé, donc un grand merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Menu contextuel empêcher clic droit sur Input
    Par lodan dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/06/2007, 18h25
  2. [Upload] Question sur <input type='file' />
    Par Sayrus dans le forum Langage
    Réponses: 7
    Dernier message: 19/04/2007, 10h39
  3. Coins arrondis sur input : meilleure solution ?
    Par Oluha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 12/09/2006, 13h52
  4. Dégradé progressif sur input text
    Par avogadro dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/08/2006, 17h04
  5. [HTML] présision sur <input>
    Par mavina dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/08/2005, 12h32

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