我有以下脚本,我遇到问题$("#success")
淡出和延迟。我以为我弄清楚了,但是当我return false;
没有注释掉时,我的php脚本无效。当它被注释掉时,我的ajax调用工作,并且php文件执行它应该做的事情,但是淡出和延迟不起作用。
有没有人知道为什么会这样?
<script>
$(document).ready(function(){
$('.approve').click(function(){
$.ajax({
url: 'userRequest_approve.php',
type: 'POST',
data: {
id: $(this).val(), //id
status: 'Approved' //status
},
success: function(data) {
//do something with the data that got returned
$("#success").fadeIn();
$("#success").show();
$('#success').html('User Status Changed!');
$('#success').delay(5000).fadeOut(400);
},
//type: 'POST'
});
//return false;
});
});
</script>
更新:从表格中添加的源代码
<form action="" method="POST" id="status">
<input type='hidden' name='id' value='33' id='pending_id'/>
Name - hgfd hgd</br>Username - testttttt</br></br> </form>
<button class="approve" type="submit" form="status" name="approve" value="33">Approve</button>
<button id="deny" type="submit" form="status" name="deny" value="Denied">Deny</button><br><br><br>
<form action="" method="POST" id="status">
<input type='hidden' name='id' value='23' id='pending_id'/>
Name - boo boo</br>Username - boopbfd</br></br> </form>
答案 0 :(得分:-1)
您需要使用promise等待来自服务器的响应。这将“等待”来自服务器代码的响应,然后在“从服务器返回响应之后”执行代码。
<script>
$(document).ready(function(){
$('.approve').click(function(){
var promise = $.ajax({
url: 'userRequest_approve.php',
type: 'POST',
data: {
id: $(this).val(), //id
status: 'Approved' //status
}
});
promise.then(function(data){
$("#success").fadeIn();
$("#success").show();
$('#success').html('User Status Changed!');
$('#success').delay(5000).fadeOut(400);
});
});
});