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 :

Soumettre un formulaire et afficher une dialog d'erreur [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut Soumettre un formulaire et afficher une dialog d'erreur
    Bonjour,

    bon je galère un peu avec la soumission de mon formulaire ...

    Je vous explique : j'ai un formulaire HTML ce qu'il y a de plus basique.

    Au départ, j'avais mis 4 <input type="button" /> avec une dialog qui s'affiche lors du clic sur un des boutons.

    Sauf qu'en faisant ça, mon formulaire n'était pas soumis. J'ai donc voulu remplacer mes button par des <input type="submit" />.
    Mon formulaire est bien soumis, sauf que ma page se recharge (évidemment) mais du coup ma dialog apparaît et disparaît dès que le formulaire est soumis et donc la page reloadée.

    Le comportement reste normal, mais du coup ne m'aide pas du tout !
    Je souhaiterai qu'une fois le formulaire rempli, on clique sur un bouton submit.
    Si le formulaire est correctement rempli, on affiche une certaine dialog, s'il y a des erreurs, on affiche une autre dialog.

    En gros, il faudrait que je soumette mon formulaire sans que ma page se recharge pour que mes dialog ne disparaissent pas

    Y a-t-il un moyen pour faire ça ??

    Voici mon code actuel :
    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
     
    function($) {
     
    	$('.error_form').dialog({
    		autoOpen: false,
    	});
     
    	$('.form_settlment input').click( function() {
     
    		jQuery.ajax({
    			type: 'POST', // Le type de ma requete
    			url: '?eID=blablabla', // L'url vers laquelle la requete sera envoyee
    			data: {
    			}, 
    			success: function(data) {
    				console.log('test : '+data);
    			}
    		});
    	});
     
    	$('#main_form').submit( function(elem) {
    		console.log('1');
    		elem.preventDefault(); // don't submit multiple times
    		console.log('2');
    		/*	this.submit(); // use the native submit method of the form element
    		console.log('3');*/
    		$('.error_form').dialog('open');console.log('4');
    	});
    }
    A la fin de mon code, la ligne elem.preventDefault() bloque bien la soumission et affiche ma dialog mais bon, si mon formulaire n'est pas soumis, je ne vais pas récupérer mes valeurs moi

    Donc avez-vous une idée, une suggestion ? Merci !

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Par défaut
    Il faut un bouton simple, qui appel une fonction javascript.
    Dans cette fonction, tu vas contrôler ton formulaire, afficher le dialog et envoyer le formulaire par ajax (sans utiliser la méthode submit() ).

    C'est-à-dire que tu récupères simplement la valeur des champs et tu les envoie en méthode POST par ajax.

  3. #3
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Merci pour ta réponse.

    Le problème étant que j'aurai voulu que ce soit mon PHP qui traite mes données pour contrôler s'il y a une erreur, et ne pas contrôler les champs uniquement via le javascript

    Mais je n'ai peut-être pas le choix !?

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Merci pour cette réponse.

    Je me demande juste :
    Les méthodes ci-dessus suffiront dans la majorité des cas. Pour des cas particuliers, les initiés utiliseront $.ajax()
    signifie bien que cela correspond à ce que j'ai déjà fait dans mon code non ? Vu que j'utilise $.ajax().


  6. #6
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Bon ben finalement j'ai dû trop me prendre la tête, j'ai gardé ce que j'avais fait en envoyant les valeurs de mon form via l'ajax et traitées donc par mon PHP.

    Donc c'est bon

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

Discussions similaires

  1. Comment afficher une page d'erreur à l'utilisateur
    Par Rohan21 dans le forum Android
    Réponses: 2
    Dernier message: 24/12/2014, 02h17
  2. [Symfony 2] Formulaire qui affiche une erreur
    Par Ownview dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 17/06/2013, 15h04
  3. Soumettre un formulaire en changeant une valeur
    Par DJ Caësar 9114 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/04/2007, 23h27
  4. [Formulaire] comment afficher une feuille excel?
    Par helenafr dans le forum IHM
    Réponses: 6
    Dernier message: 16/06/2006, 14h26
  5. le sous formulaire s'affiche une fois sur deux
    Par Math dans le forum Access
    Réponses: 16
    Dernier message: 10/10/2005, 16h25

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