用户在点击按钮(删除)时可以选择删除他的帐户 - 他也必须输入密码才能这样做。 所以我在上面描述了第一个ajax请求。如果仍有预订(这是一个预订网络应用程序),如果他还是要重新考虑,那么从服务器返回的WHat就是一个响应 - 一条消息出现。< / p>
如果他坚持删除他的帐户,那么他必须再次点击删除按钮。 问题(如果您没有注意到)是通过再次单击删除按钮,上面的过程重复进行,同时现在的目标 - 出现警告消息后 - 单击删除按钮意味着“是,尽管我想要预订删除我的帐户“。
因此,此删除按钮必须具有双重角色,一个在警告出现之前,另一个在警告之后。 在这样的情况下我该怎么办?我正在考虑实施一个确认框,但上面都是在模态框中进行的。所以在模态上的确认框我认为不是正确的解决方案。
以下是用户首次单击删除按钮时发送的ajax请求:
$('.deactivate').click(function(){
event.preventDefault();
var trimmeddelpass=$.trim($('input#del_password').val());
if(trimmeddelpass!=="")
{ $.ajax({
type: "POST",
url: "delaccountajax.php",
data: {"delpass":trimmeddelpass},
success:function(data){
if(data==2)
{$('#warning').html('You have still bookings pending');
$('#warning').show();
}
else if(data==3)
{ window.location.href = "../Frontend/login.php";//proceed deleting the account
}
error:function(jxhr){
alert(jxhr.responseText);}
});
}
这是服务器代码:
$output=delete_account($conn,$delpass,$sessionml);
if($output=='2')
{$success='2';}
elseif($output=='3')
{logout();
$success='3';}
echo $success;
上面的两个代码都是简化版本,因为其他一些东西也在其中,但是我们正在处理的问题不需要它们。
我在实施您建议的代码时遇到问题......当然这是正确的解决方案但是......看看发生了什么,这里是代码:
$('.deactivate').click(function(){
event.preventDefault();
deletestate=0;
if(deletestate==0)
{ $.ajax({
type: "POST",
url: "delaccountajax.php",
data: {"delpass":trimmeddelpass},
success:function(data){
if(data==2)
{$('#warning').html('You have booking pending');
$('#warning').show();
deletestate=1
}....
if(deletestate==1){....}
上面的代码总是将全局deletestate设置为0,稍后将其设置为1无效...我该怎么做?