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 :
Voila le contrôleur :
Et le modèle est comme ça :
Merci de vos réponses
Modifié par Arths (10 Jun 2018 - 09:47)
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
Modifié par Arths (10 Jun 2018 - 09:47)