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 )
Ma méthode control_connexion()
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(); }
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(); } } }
Partager