Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2011, 23h51   #1
Membre à l'essai
 
Développeur Web
Inscription : 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 : 20
Points : 20
Envoyer un message via Skype™ à riadh8
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 :
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 :
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.
riadh8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 01h55   #2
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

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

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
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"},.
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h06.


 
 
 
 
Partenaires

Hébergement Web