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

AJAX Discussion :

Ajax et redirection (architecture MVC)


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 48
    Points : 38
    Points
    38
    Par défaut Ajax et redirection (architecture MVC)
    Bonjour à tous,

    J'essaie de créer une classe Ajax pour envoyer les données de mon formulaire vers un script qui analyse ces données et qui signale lors de la soumission s'il y a des erreurs (champs non renseigné etc). Cela fonctionne bien.
    Le problème c'est que j'arrive pas à rediriger si tout se passe bien. J'ai essayé de mettre un header pour la redirection de ma méthode qui contrôle les données mais ça ne fonctionne pas.

    Voici la méthode de ma classe Ajax

    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
    post() {
            this.form = document.getElementsByClassName("ajax");
            $(this.form).on('submit', function (e) {
                e.preventDefault();
                $("#ajax-connexion").empty();
                let that = $(this);
                let url = that.attr('action');
                var data = {}
     
                that.find('[name]').each(function (index, value) {
                    let that = $(this);
                    let name = that.attr('name')
                    value = that.val();
     
                    data[name] = value;
                })
     
                $.ajax({
                    url: url, // /dashboard
                    type: 'POST',
                    data: data,
                    success: function (data) {
                        $("#ajax-connexion").append(data)
     
                    }
                })
            })
        }

    Mon routeur ( c'est la methode control_connexion() qui verifie les donnees )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if ( $_GET['action'] == "dashboard" ) {
                    $this -> ctrlConnexion -> control_connexion();
                }
     if ( $_GET['action'] == "dashboard-success" ) {
                    $this -> ctrlDashboard -> dashboard();
                }
    Ma méthode control_connexion()
    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
     
         public function control_connexion()
        {
            $this -> user = new Users();
            if ( isset($_POST['login']) && isset($_POST['mdp']) ) {
                // si valeur non vide
                $this -> ctrlPost = new PostControl();
                $this -> ctrlPost -> notEmpty($_POST);
     
                // verification regex, si erreur, retourne message d'erreur + arret script avec die()
                $this -> regex = new Regex();
                $this -> regex -> insultes($_POST);
                $this -> regex -> xss($_POST);
     
                // si tout ok, alors :
                $this -> login = $_POST['login'];
                $datas = array(
                    ':nom' => htmlspecialchars($this -> login)
                );
                $user = $this -> user -> getByName($datas);
     
                // si login existe dans base de donnée
                if ( !is_null($user) ) {
                    if ( $this -> login == $user -> nom ) {
                        // alors stocker dans session toutes les infos utilisateurs de la bdd
                        $_SESSION['Auth'] = $user;
                    }
                }
                else {
                    $_SESSION['Auth'] = array();
                }
            }
     
     
        }

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 220
    Points : 15 511
    Points
    15 511
    Par défaut
    l'appel AJAX c'est du JavaScript qui fait une requête HTTP au serveur et qui récupère les données dans la fonction associée à "success".
    donc si vous utilisez "header location ..." cela redirigera la réponse de la requête HTTP et donc les données que javascript récupère.

    donc si vous voulez charger une autre page, vous devez le faire en JavaScript dans "success" après avoir traité les données reçues :
    https://javascript.developpez.com/fa...avig#accesPage

    j'ai l'impression que le résultat de la requête ne retourne rien. elle devrait retourner soit "resultat=toutVaBien" soit "resultat=ahBinNon,erreurs=L'accès est refusé.". ensuite en JavaScript vous faites la redirection en fonction de la valeur de "resultat".

Discussions similaires

  1. [AJAX] Ajax avec une architecture MVC en PHP
    Par chrill dans le forum jQuery
    Réponses: 5
    Dernier message: 06/09/2013, 15h43
  2. Réponses: 3
    Dernier message: 24/10/2009, 19h46
  3. architecture mvc etxml/xsl
    Par kiko2005 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 14/08/2009, 15h52
  4. Utiliser une architecture MVC
    Par misterniark dans le forum MVC
    Réponses: 5
    Dernier message: 03/11/2006, 23h35
  5. Architecture MVC
    Par Bobleponge dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 20/06/2005, 11h16

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