我在ajax回调中有一个函数,它在里面显示一个带有bootstrap警报的div。问题是它只能在它消失之前停留大约半秒钟。我想留下2秒钟。 Async设置为false,因为我需要表单输入以使用更新的值重新加载自己,如果设置为true,我必须使用F5手动刷新页面以查看更新的版本。
$('#btnEnregistrerMembre').on('click', function (e) {
$.ajax({
async: false, type: 'POST', url: 'functionPHP.php', data: {
userID: document.getElementById('id').value, nomUtilisateur: document.getElementById('nomUtilisateur').value, estActif: +document.getElementById('actif').checked, estAdmin: +document.getElementById('admin').checked, updateMembre: 'updateMembre'
},
success: function (msg) {
ajouterMessage('messageArea', 'succes', 'Les modifications ont étés prises en compte.');
// alert('succes ajax');
},
error: function (err) {
ajouterMessage('messageArea', 'danger', 'Les modifications ont échouées.');
}
});
});
function ajouterMessage(locationID, type, message) {
var endroit = document.getElementById(locationID);
var element = document.createElement('div');
if (type == 'danger')
{
element.className = 'alert alert-danger';
element.innerHTML = '<strong>Erreur!</strong>' + ' ' + message;
}
else
{
element.className = 'alert alert-succes';
element.innerHTML = '<strong>Succès!</strong>' + ' ' + message;
}
endroit.appendChild(element);
}
感谢您的帮助。
答案 0 :(得分:1)
您的问题是async设置为false。我知道您希望页面重新加载效果,但您尝试在重新加载之前在旧页面中设置一个值。
发生了什么:
这里有几个选项......
选项1(推荐): 您可以异步发送请求,并返回响应中需要刷新的相关数据。
选项2: 设置带有标志的cookie,以指示在刷新页面时应设置的消息。记得在阅读后清除旗帜。
Si c'est plus facile pour toi,je peux traduiremareéponseenfrançais。
编辑:应该注意的是,同步AJAX完全没用。它代表异步Javascript和XML。如果您想发送同步请求,简单的表单提交或带有一些GET参数的链接可能会更加简单。
答案 1 :(得分:0)
谢谢你这个非常明确的答案。但是,我在更新数据库的函数中有一个返回值,但是如何在modifierUtilisapeur.php页面中获取值?以下是该函数的一些代码,如果它可以提供帮助:
function updateMembre($id,$nomUtilisateur,$status,$admin){
$caught = false;
$connexion = Connexion(NOM, PASSE, BASE, SERVEUR);
$requete = "update utilisateur set nomUtilisateur = '".addslashes($nomUtilisateur)."', estActif = '".$status."',estAdmin = '".$admin."' where id ='".$id."' ;";
try{
ExecRequete($requete, $connexion);}
catch (Exception $e){
$caught = true;
echo '<div class="alert alert-danger">
<strong>Erreur!</strong> Le nom d\'utilisateur existe déjà.
</div>';
}
finally{
if (!$caught){
echo '<div class="alert alert-success">
<strong>Succès!</strong> Les modifications ont étés prises en compte.
</div>';
}
}
return getMembre($id);
}
function getMembre($nomUtilisateur){
$connexion = Connexion(NOM, PASSE, BASE, SERVEUR);
$requete = "SELECT * FROM utilisateur where nomUtilisateur = '".$nomUtilisateur."';";
$resultat = ExecRequete($requete, $connexion);
$resultat->data_seek(0);
$row = $resultat->fetch_assoc();
return $row;
}