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 :

Passage de paramètre laborieux, dans une transaction AJAX


Sujet :

jQuery

  1. #1
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut Passage de paramètre laborieux, dans une transaction AJAX
    Salut, j'ai un problème en utilisant $.post(...,{...}, function(data){...});
    voici une partie du code php:


    Code php : 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
    if($valid){
                $req = $bdd->prepare('SELECT * FROM membre WHERE pseudo=:pseudo');
                $req->execute(array(':pseudo'=>$pseudo));
                if($req->rowCount()>0){
                  $valid = false;
                  $pseudoerreur = 'Pseudo déja pris';
     
                  if($_POST['ajax']==1){
                      echo 'Pseudo pris';
                      exit();
                  }
     
                $req = $bdd->prepare('select * from membre where email=:email');
                $req->execute(array(':email'=>$email));
                if($req->rowCount()>0){
                   $valid = false;
                   $emailerreur = 'email existant';
     
                   if($_POST['ajax']==1){
                      echo 'Email existant';
                      exit();
                  }
                }
                $req->closeCursor();
     
     
                if($valid){
     
     
     
                      $req = $bdd->prepare('INSERT INTO membre (pseudo,email,pass) VALUES (:pseudo,:email,:pass)');
                      $req->execute(array(':pseudo'=>$pseudo,':email'=>$email,':pass'=>sha1($pass)));
                      $req->closeCursor();
     
                      if($_POST['ajax']==1){
                            echo true;
                            exit();
                      }
                      else{
                           header('location: index.html'); 
                      }
     
                }
    }

    et voici mon script jquery:

    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
                        $('#signup-submit').click(function(){
                        $('.loader').show();
     
     
                        /*Récupérer pseudo, email et pass dans des variables ainsi la page à laquelle les variables seront envoyées et une variable de test*/
                        var link = 'signup.php';
                        var pseudo = $('#pseudo').val();
                        var email = $('#email').val();
                        var pass = $('#signup-pass').val();
                        var valid = true;
     
     
                        /*vérifier un pseudo vide*/
                        if($('#pseudo').val()=='')
                        {
                            valid = false;
                            $('.loader').fadeOut();
                            $('#pseudo').next('.error').fadeIn();
                        }
                        else
                        {
                           $('.loader').fadeOut(); 
                           $('#pseudo').next('.error').fadeOut();
                        }
     
     
     
                        /*vérifier un email valide*/                                        
                        if(!$('#email').val().match('/^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/'))
                        {
                         $valid = false;
                         $('.loader').fadeOut();
                         $('#email').next('.error').fadeIn();
                        }
                        else
                        {
                         $('.loader').fadeOut();
                         $('#email').next('.error').fadeOut();   
                        }
     
     
                        /*vérifier un mot de passe vide*/
                        if($('#signup-pass').val()=='')
                        {
                            valid = false;
                            $('.loader').fadeOut();
                            $('#signup-pass').next('.error').fadeIn();
                        }
                        else
                        {
                           $('.loader').fadeOut(); 
                           $('#signup-pass').next('.error').fadeOut();
                        }
     
     
                        /*Si valid est true*/
                        if(valid)
                        {
                            $.post(link,{pseudo: pseudo, email: email, pass: signup-pass, ajax: '1'},
                                   function(data){
                                        if(data==true)
                                        {
                                          $('#signup-form').slideUp();
                                          $('#success-message').sldeDown().text('Consultez votre email');
                                        }
                                        else if(data=='Pseudo pris')
                                        {
                                          $('.loader').fadeOut();
                                          $('#pseudo').next('.error').fadeIn();
                                        }
                                        else if(data=='Email existant')
                                        {
                                         $('.loader').fadeOut();
                                         $('#email').next('.error').fadeIn();   
                                        }
                                    });
                        }
     
     
                        return false;
                    });
    Il m'affiche l'erreur Notice: Undefined index: ajax in...

    J'ai compris que la variable ajax dans $.post n'est pas envoyée vers ma page php.

    Merci d'avance.

  2. #2
    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 : 74
    Localisation : Belgique

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

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

    J'ai déjà vu ce code, et j'en avais écrit une version améliorée qui semble ne pas avoir été retenue.

    Si "signup-pass" n'est pas une variable, il serait également prudent de remplacer le mot "ajax" par un autre, alors : $.post(link,{pseudo: pseudo, email: email, pass: "signup-pass", monType: "1"},.

    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.)

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/04/2011, 09h27
  2. Passage de paramétre dynamique dans une requete SQL
    Par d.tellier dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/01/2010, 12h57
  3. Passage de paramètre "File" dans une fonction
    Par saket2114 dans le forum Général Java
    Réponses: 10
    Dernier message: 28/10/2009, 16h40
  4. Réponses: 0
    Dernier message: 29/07/2009, 16h39
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15

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