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 du Club
    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
    Points : 53
    Points
    53
    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
    Points : 22 933
    Points
    22 933
    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"},.

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