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

Bibliothèques & Frameworks Discussion :

Formulaire ajax [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 126
    Points : 105
    Points
    105
    Par défaut Formulaire ajax
    Bonjour,

    Depuis plusieurs heures je cherche un problème, je ne voulais pas en arriver à poster sur ce forum mais là je n'en peux plus

    Voici mon code condensé :

    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
     
    <div id="contentWrapper">
    <form id="inscription" class="niceform">
    <fieldset>
    <legend>Inscription</legend>
    <div class="form-row">
    	<div class="field-label"><label for="login">Login :</label></div>
    	<div class="field-widget"><input type="text" name="login" id="login" maxlength="20" size="20" class="required" title="Entrez votre login"/></div>
    </div>
    </fieldset>
    <div class="buttons">
    	<button  class="positive">
    		<img src="/images/tick.png" alt=""/>
    		S inscrire
    	</button>
    </div>
    <input type="hidden" name="page" value="<?=$page;?>">
     
    </form>
    </div>
     
    <div id="retour"></div>
     
    <script type="text/javascript">
     
    	function ValidateForm(result,form){
    		if(result){
    			//new Ajax.Updater('retour','/ajax/inscription.php',{ onComplete:alert('ok'), onFailure:alert('false'), onSuccess:alert('success')});
    			new Ajax.Updater('retour', 'ajax/inscription.php', {onComplete:function(){ new Effect.Highlight('retour');},asynchronous:true});
    			//new Ajax.Updater('retour', 'inscription.php', {asynchronous:true});
     
    		}
    	}
     
    	var valid = new Validation('inscription', {immediate : true, onFormValidate : ValidateForm});
     
    	Validation.addAllThese([
    		['validate-password', 'Your password must be more than 6 characters and not be \'password\' or the same as your name', {
    			minLength : 1,
    			notOneOf : ['password','PASSWORD','1234567','0123456'],
    			notEqualToField : 'login'
    		}],
    		['validate-password-confirm', 'Your confirmation password does not match your first password, please try again.', {
    			equalToField : 'mdp'
    		}]
    	]);
    </script>
    Plusieurs questions :
    1/ je ne comprends pas pourquoi ma page se rafraichis
    2/ je n'arrive pas à afficher ce qui se trouve dans inscription.php dans la div "retour"
    (dans inscription.php il y a juste un echo "toto"

    Merci infiniment

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    La réponse à la question 1 est simple : tu n'utilises pas d'attribut ACTION="" dans ton <FORM> (par défaut, le navigateur remplace action="" par l'adresse de la page courante). De plus, par rapport à ça, tu valides bien le formulaire, en ne consommant pas l'événement. Le tout fait que le processus normal de l'envoi de données recharge ta page.

    La solution à la 1 devrait faire en sorte que la 2 soit correcte

  3. #3
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 126
    Points : 105
    Points
    105
    Par défaut
    Effectivement, il fallait que j'ajoute un onsubmit="return false" dans la balise form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="inscription" class="niceform" onsubmit="return false">
    Merci bien jeune ami.

    EDIT : Et pour être complet, pour récupérer les variables du formulaire :

    var params = Form.serialize($('inscription'));
    new Ajax.Updater('contentWrapper', 'ajax/inscription.php', {onComplete:function(){ new Effect.Highlight('contentWrapper');},asynchronous:true,parameters:params});

    ensuite dans la page php, il suffit de lire avec $_POST

    En espérant que ça aide quelqu'un..

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

Discussions similaires

  1. Formulaire ajax et effet d'apparition
    Par anakyl dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/06/2008, 15h14
  2. formulaire AJAX + PHP aucune action
    Par akrogames dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/05/2008, 15h48
  3. Validation formulaire Ajax et Pop-up
    Par PiXeL' dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 06/05/2008, 10h42
  4. Récupération de donnée formulaire AJAX vers PHP
    Par Starbug dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/10/2007, 18h38
  5. problème encodage avec formulaire ajax
    Par gyome314 dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 21/06/2007, 13h14

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