Ajax qui ne fonctionne pas
Résolu
Mephistole
Messages postés
58
Statut
Membre
-
Mephistole Messages postés 58 Statut Membre -
Mephistole Messages postés 58 Statut Membre -
Bonjour,
J'utilise Ajax pour qu'une personne ne puisse être inscrite sur mon site que si l'adresse mail qu'elle donne n'est pas encore dans la base de donnée.
Voici mon contrôleur :
Voici mon script JS :
Voici mon modèle :
EDIT : Correction des balises de code ( Ajout du langage afin d'avoir la coloration syntaxique ! ) (jordane)
Mon script JS n'a pas l'air d'être chargé puisque que je lui ajoute le code suivant :
J'utilise Ajax pour qu'une personne ne puisse être inscrite sur mon site que si l'adresse mail qu'elle donne n'est pas encore dans la base de donnée.
Voici mon 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);
}
}
Voici mon script JS :
$('#errorCheckMailUnique').css('display', 'none');
function checkMailUnique() {
$.post(de donnée ou non
'../../controllers/addUser-Controller.php',
{
checkMail: $('#mail').val()
},
// On récupère les résultats du controller
function (checkMailResult) {
// Si on retrouve une addresse mail dans la base de donnée, alors on affiche un message d'erreur
if (checkMailResult === 1) {
$('#errorCheckMailUnique').css('display', 'block');
$('#submitRegistrer').attr('disabled', 'disabled');
alert('1');
} else if (checkMailResult === 0) {
$('#errorCheckMailUnique').css('display', 'none');
$('#submitRegistrer').removeAttr('disabled', 'disabled');
alert('2');
}
},
'JSON'
);
};
Voici mon modèle :
public function checkMailUnique() {
$queryCheckMail = 'SELECT COUNT(`mail`) AS countMail '
. 'FROM `'.self::prefix.'user`'
. 'WHERE `mail` = :mail';
$checkMailUnique = $this->db->prepare($queryCheckMail); PDO:: est une constante
$checkMailUnique->bindValue(':mail', $this->mail, PDO::PARAM_STR);
if ($checkMailUnique->execute()) {
$checkMailUniqueResult = $checkMailUnique->fetch(PDO::FETCH_OBJ);
return $checkMailUniqueResult->countMail;
} else {
return false;
}
}
EDIT : Correction des balises de code ( Ajout du langage afin d'avoir la coloration syntaxique ! ) (jordane)
Mon script JS n'a pas l'air d'être chargé puisque que je lui ajoute le code suivant :
$('button').css('background-color', 'red'); cette ligne de code ne fonctionne pas. Alors que cette même ligne dans un autre script JS fonctionne. Pourtant j'ai bien ajouté <script src="assets/js/checkMailUnique.js" type="text/javascript"></script>dans la balise <head>
A voir également:
- Ygg erreur ajax
- Yggtorrent erreur ajax - Meilleures réponses
- Erreur ajax yggtorrent - Meilleures réponses
- Ygg torrent - Accueil - Outils
- Erreur 0x80070643 - Accueil - Windows
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
1 réponse
Bonjour,
Lorsque l'on fait du Javascript (et ou ajax) il faut toujours commencer par regarder dans la CONSOLE du navigateur si il n'y a pas des erreurs.
(pour l'ajax, penser à activer l'option sur certains navigateurs comme chrome (xhr) )
( personnellement, pour débuguer, je préfère utiliser firefox... )
Quoi qu'il en soit, une de tes lignes de code me parait étrange.....
PS: A l'avenir, merci de préciser le LANGAGE dans les balises de code afin d'avoir la coloration syntaxique et l'indentation du code (j'ai édité ton message pour les y mettre).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Lorsque l'on fait du Javascript (et ou ajax) il faut toujours commencer par regarder dans la CONSOLE du navigateur si il n'y a pas des erreurs.
(pour l'ajax, penser à activer l'option sur certains navigateurs comme chrome (xhr) )
( personnellement, pour débuguer, je préfère utiliser firefox... )
Quoi qu'il en soit, une de tes lignes de code me parait étrange.....
$.post(de donnée ou non
'../../controllers/addUser-Controller.php',
{
PS: A l'avenir, merci de préciser le LANGAGE dans les balises de code afin d'avoir la coloration syntaxique et l'indentation du code (j'ai édité ton message pour les y mettre).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
j'ai résolu le problème.
Il m'a semblé avoir précisé le langage dans les balise. J'ai sûrement fait une erreur de manipulation.
J'ai résolu le problème.
Il m'a semblé avoir précisé le langage dans les balises. J'ai sûrement fait une erreur de manipulation.