Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script Ajax qui ne fonctionne pas

Sujet résolu
    12 juin 2018 à 14:49:39

    Bonjour,

    Je voudrais utiliser Ajax pour un site web pour une association. Le but est qu'il empêche l'utilisateur d'ajouter un autre utilisateur (c'est la seule personne à pouvoir le faire) lorsque l'adresse mail existe déjà dans la base de donnée.
    Mais le problème est qu'il ne fonctionne plus comme il le devrait. Et je n'arrive pas à voir d'où vient le problème.

    Voici le script Javascript :

        $('#errorCheckMailUnique').css('display', 'none');
        function checkMailUnique() {
            $.post(
                    '../../controllers/addUser-Controller.php',
                    {
                        checkMail: $('#mail').val()
                    },
                    function (checkMailResult) {
                        if (checkMailResult == 1) {
                            $('#errorCheckMailUnique').css('display', 'block');
                            $('#submitRegistrer').attr('disabled', 'disabled');
                        } else if (checkMailResult == 0) {
                            $('#errorCheckMailUnique').css('display', 'none');
                            $('#submitRegistrer').removeAttr('disabled', 'disabled');
                        }
                    },
                    'JSON'
                    )
        };



    Voila le contrôleur :

    if (isset($_POST['checkMail'])) { session_start(); include_once '../models/dataBase.php'; include_once '../models/user.php'; $mailUnique = new user(); $mailUnique->mail = strip_tags($_POST['checkMail']); $checkMail = $mailUnique->checkMailUnique(); if ($checkMail !== false) { if ($checkMail == 1) { $_SESSION['formError'] = true; } echo json_encode($checkMail); } 



    Et le modèle est comme ça :

        public function checkMailUnique() {
            $queryCheckMail = 'SELECT COUNT(`mail`) AS countMail '
                              . 'FROM `'.self::prefix.'user`'
                              . 'WHERE `mail` = :mail';
            $checkMailUnique = $this->db->prepare($queryCheckMail);
            $checkMailUnique->bindValue(':mail', $this->mail, PDO::PARAM_STR);
            if ($checkMailUnique->execute()) {
                $checkMailUniqueResult = $checkMailUnique->fetch(PDO::FETCH_OBJ);
                return $checkMailUniqueResult->countMail;
            } else {
                return false;
            }
        }

    Merci de vos réponses Smiley smile

    -
    Edité par Maxime :) 12 juin 2018 à 16:01:25

    • Partager sur Facebook
    • Partager sur Twitter
      12 juin 2018 à 15:15:54

      Bonjour,

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : "Probleme avec Ajax")

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        14 juin 2018 à 18:10:04

        Bonjour à tous,

        Je viens de trouver la solution à mon problème.

        L'erreur que j'avais faite est que j'avais mis mon script ajax dans la fonction suivante :

        $(document).ready(function(){
        
        });

        -
        Edité par Maxime :) 14 juin 2018 à 18:13:28

        • Partager sur Facebook
        • Partager sur Twitter

        Script Ajax qui ne fonctionne pas

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown