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 :

Exécution de $.post() et soumission de formulaire


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut Exécution de $.post() et soumission de formulaire
    Bonjour à tous!

    J'essaye de faire une fonction qui va checker la valeur d'une input et qui va la comparer à une valeur présente dans la BDD. Dans la console il n'y a aucune erreur mais quand la fonction est censé retourner "false", le formulaire est quand même envoyé. Voici le code en question. Merci d'avance

    Code HTML :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="traitement/traitement.php" name="form" method="POST" onsubmit = "return check_password();" >
        <label id="rep_check" ></label>
        <input id="input_password" name="input_password" type="text" maxlength="5" required="required" />
    </form>


    Code Javascript :

    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 check_password(){
        var verif = document.getElementById('input_password');
        var passwordRegex = new RegExp(/^[a-z0-9]{5}$/);
        if((passwordRegex.test(verif.value))){
            $("#rep_check").removeClass().addClass('fi-refresh').fadeIn("fast");
            $.post("traitement/check_password.php" ,{ input_password:$(verif).val() } ,function(data){
                if(data == 'false'){
                    $("#rep_check").removeClass().addClass('fi-prohibited').fadeIn("slow");
                   return false;
                }
                else if(data == 'no'){
                    $("#rep_check").fadeTo(fast,1,function(){
                        $("#rep_check").removeClass().addClass('fi-x-circle').fadeIn("slow");
                    });
                    return false;
                }
                else if(data == 'yes'){
                    $("#rep_check").fadeTo(fast,1,function(){
                        $("#rep_check").removeClass().addClass('fi-like').fadeIn("slow");
                    });
                    return true;
                }
            });
        }
        else{
            $("#rep_check").removeClass().addClass('fi-prohibited').fadeIn("slow");
            return false;
        }
    }

    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
    <?php
    require_once '../include/include_connect_BDD.php';
    global $bdd;
    $input_password = $_POST["input_password"];
    if(preg_match('/^[a-z0-9]{5}$/', $input_password)){      
        /*******RETOURNE $password**************************/
        include_once "../include/include_check_new_day.php";
        if($input_password == $password){
            echo ('yes');
        }
        else echo ('no');
    }
    else echo ('false');
    ?>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    J'ai trouvé la solution en passant par l'objet XMLHttpRequest. Merci à toi Bovino.

    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
     
    function getXMLHttpRequest(){
     
    	var xhr = null;
     
    	if (window.XMLHttpRequest || window.ActiveXObject){
    		if(window.ActiveXObject){
                try{
                    xhr = new ActiveXObject("Msxml2.XMLHTTP");
                } 
                catch(e){
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
            } 
            else{
    			xhr = new XMLHttpRequest(); 
    		}
    	}
        else{
    		alert("Votre navigateur n'ai pas compatible, veuillez préférer un autre outil de navigation internet...");
    		return null;
    	}
     
    	return xhr;
    }
     
     
    function check_password(){
     
    	var password_value = encodeURIComponent(document.getElementById('input_password').value);
    	var repeat = document.getElementById('3aoud');
        var bool = false;
     
        $("#rep_check").removeClass().addClass('fi-refresh').fadeIn("slow");
     
    	if(repeat.value != password_value){
     
            function request(callback){
                var xhr = getXMLHttpRequest();
     
                xhr.onreadystatechange = function(){
                    if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)){
                        callback(xhr.responseText);
                    }
                };
     
                xhr.open("POST", "traitement/check_password.php", false);
                xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xhr.send("input_password=" + password_value);
            }
     
            function readData(sData){
     
                if (sData == "false"){
                    $("#rep_check").removeClass().addClass('fi-prohibited').fadeIn("slow");
     
                    repeat.value = password_value;
                }
                else if(sData == "no"){
                    $("#rep_check").removeClass().addClass('fi-x-circle').fadeIn("slow");
     
                }
                else if(sData == "yes"){
                    $("#rep_check").removeClass().addClass('fi-unlock').fadeIn("slow");
                    bool = true;
                }
            }
     
            request(readData);
        }
        else{
            $("#rep_check").removeClass().addClass('fi-prohibited').fadeIn("slow");
            repeat.value = password_value;
        }
     
     
        return bool;
    }

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

Discussions similaires

  1. Exécution d'une application dans un formulaire
    Par julio02200 dans le forum Access
    Réponses: 1
    Dernier message: 13/06/2006, 14h37
  2. soumission de formulaire : problème ..
    Par questionneuse dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/06/2006, 19h14
  3. Réponses: 1
    Dernier message: 15/05/2006, 18h05
  4. Confirm sur une soumission de formulaire
    Par ephemere2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/04/2006, 08h59
  5. double click pour soumission de formulaires
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/11/2005, 12h32

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