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 :

recuperer un formulaire avec jquery


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Par défaut recuperer un formulaire avec jquery
    Voici mon code qui me permet d'afficher un dialog box pour un formulaire avec jquery
    lorsque l'utilisateur saisie les champs et clique sur enregistrrer les modification je voudrais recuperer ces valeurs et rediriger le reste du traitement vers une autre page de suppression qui va s'occueper de tous acces bd
    voici mon code qui ne réccupere et ne redirige pas !!
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <style>
    		label, input { display:block; }
    		input.text { margin-bottom:12px; width:95%; padding: .4em; }
    		fieldset { padding:0; border:0; margin-top:25px; }
    		h1 { font-size: 1.2em; margin: .6em 0; }
    		div#users-contain { width: 350px; margin: 20px 0; }
    		div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }
    		div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }
    		.ui-dialog .ui-state-error { padding: .3em; }
    		.validateTips { border: 1px solid transparent; padding: 0.3em; }
    	</style>
            <link href="../js/jquery.ui.all.css" rel="stylesheet" media="all" type="text/css" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"/>
    	</script>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"/></script>
    	<script>
    	$(function() {
    		// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
    		$( "#dialog:ui-dialog" ).dialog( "destroy" );
     
    		var name = $( "#name" ),
    			email = $( "#email" ),
    			password = $( "#password" ),
    			allFields = $( [] ).add( name ).add( email ).add( password ),
    			tips = $( ".validateTips" );
     
    		function updateTips( t ) {
    			tips
    				.text( t )
    				.addClass( "ui-state-highlight" );
    			setTimeout(function() {
    				tips.removeClass( "ui-state-highlight", 1500 );
    			}, 500 );
    		}
     
    		function checkLength( o, n, min, max ) {
    			if ( o.val().length > max || o.val().length < min ) {
    				o.addClass( "ui-state-error" );
    				updateTips( "Length of " + n + " must be between " +
    					min + " and " + max + "." );
    				return false;
    			} else {
    				return true;
    			}
    		}
     
    		function checkRegexp( o, regexp, n ) {
    			if ( !( regexp.test( o.val() ) ) ) {
    				o.addClass( "ui-state-error" );
    				updateTips( n );
    				return false;
    			} else {
    				return true;
    			}
    		}
     
    		$( "#dialog-form" ).dialog({
    			autoOpen: false,
    			height: 300,
    			width: 350,
    			modal: true,
    			buttons: {
    				"Enregistrer modification": function() {
    					var bValid = true;
    					allFields.removeClass( "ui-state-error" );
     
    					bValid = bValid && checkLength( nomfr, "nomfr", 3, 16 );
    					bValid = bValid && checkLength( email, "email", 6, 80 );
    					bValid = bValid && checkLength( password, "password", 5, 16 );
     
    					bValid = bValid && checkRegexp( nomfr, /^[a-z]([0-9a-z_])+$/i, "Username may consist of a-z, 0-9, underscores, begin with a letter." );
    					// From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
    					bValid = bValid && checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com" );
    					bValid = bValid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );
     
    					if ( bValid ) {
     
     
    							var nomfr = $( "#nomfr" ),
    							nomen = $( "#nomen" ),
    						    descfr = $( "#descfr" ),
    							descfr = $( "#descen" ),
    							password = $( "#password" ),
    							siege = $( "#siege" ),
    							tel = $( "#tel" ),
    							email = $( "#email" ),
    							password = $( "#password" );
    							  $( this ).dialog( "close" );
    							window.location.href = 'modifierCompte.php?nomfr=nomfr.val()';
     
    				}
     
    				},
    				Annuler: function() {
    					$( this ).dialog( "close" );
    				}
    			},
    			close: function() {
    				allFields.val( "" ).removeClass( "ui-state-error" );
    			}
    		});
     
    		$( "#create-user" )
     
    			.click(function() {
    				$( "#dialog-form" ).dialog( "open" );
    			});
    	});
    	</script>
    J'ai besoin de votre aide !
    l'erreur est tres prbable avant le href
    Merci d'avance pour votre aide

  2. #2
    Membre expérimenté Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Par défaut
    Bonjour programmatrice,

    Jusqu'au if(bvalid) c'est le bout de code type qui récupère le contenu de tes champs (var name, email et password) et les vérifie en fonction des régex renseignées.

    Par contre, dans le if(bValid) tu recrée des champ en plus et donc tu n'envoie rien nul part.

    Il te faut faire nomfr = name.val() pour récupérer la valeur de ton champ (à la place de nomfr = $("#nomfr") ). Ainsi ton paramètre est bien envoyé.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Par défaut
    Tu ne peux pas récupérer les données de cette manière:
    if ( bValid ) {


    var nomfr = $( "#nomfr" ),
    nomen = $( "#nomen" ),
    descfr = $( "#descfr" ),
    descfr = $( "#descen" ),
    password = $( "#password" ),
    siege = $( "#siege" ),
    tel = $( "#tel" ),
    email = $( "#email" ),
    password = $( "#password" );

    $( this ).dialog( "close" );
    window.location.href = 'modifierCompte.php?nomfr=nomfr.val()';

    }

    },
    var nomfr = $( "#nomfr" ) ==> tu déclare une var "nomfr" provenant de l'id (#nomfr) mais aucune donnée ne peut être récupérée, d'où la présence du ".val()".

    Le mieux serait de transmettre tes données de cette manière, sauf si c'est une nécessite de rediriger vers une page :

    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
     
    if ( bValid ) {
    	$.ajax({
    		type: "post",
    		url:  "modifierCompte.php",
    		data: "nomfr =" + nomfr .val() + "&nomen=" + nomen.val() + "&descfr=" + descfr.val() + "&descen=" + descen.val() + "&password=" + password.val(),
    		error: function() {
    			$('.error').slideDown('slow');
    			alert(Une erreur s'est produite);
    						},
    		success: function () {
    			$('.success').slideDown('slow');
    			alert(Action effectué);
    			$( this ).dialog( "close" );
    		}				
    });
     
     
    		$( this ).dialog( "close" );
    	}
    Bon je n'ai pas complètement remplit la ligne : data: "nomfr =" + nomfr .val() + " à toi de remplir exactement ce que tu veux.

    Bon codage!!

Discussions similaires

  1. Affichage du résultat d'un formulaire avec JQuery
    Par aymen8219 dans le forum jQuery
    Réponses: 7
    Dernier message: 19/11/2011, 21h43
  2. Réponses: 4
    Dernier message: 05/06/2011, 12h28
  3. [JavaScript] Création dynamique de formulaires avec jQuery
    Par rberthou dans le forum Contribuez
    Réponses: 2
    Dernier message: 21/09/2009, 10h40
  4. Valider un formulaire avec JQuery
    Par Armagnak dans le forum jQuery
    Réponses: 0
    Dernier message: 31/07/2008, 21h06

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