0

用户在单击按钮(删除)时可以选择删除他的帐户——他也必须输入他的密码才能这样做。所以我在上面描述了第一个 ajax 请求。如果用户仍然进行预订(它是一个预订 Web 应用程序)并且他应该重新考虑,则从服务器返回的响应是一个响应 - 出现一条消息。

如果他坚持要删除他的帐户,那么他必须再次单击删除按钮。问题(如果您没有注意到)是通过再次单击删除按钮重复上述过程,而现在的目标 - 在出现警告消息之后 - 是单击删除按钮的意思是“是的,尽管我想要预订删除我的帐户”。

所以,这个删除按钮必须有双重作用,一个在警告出现之前,一个在警告出现之后。在这种情况下我能做什么?我正在考虑实现一个确认框,但以上都发生在一个模态框中。所以一个模态框上的确认框我认为不是正确的解决方案。

这是用户第一次单击删除按钮时发送的 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 没有任何效果......我该怎么做?

4

0 回答 0