Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JQuery:当用户单击链接时,首先提交表单,然后转到链接_Php_Jquery - Fatal编程技术网

Php JQuery:当用户单击链接时,首先提交表单,然后转到链接

Php JQuery:当用户单击链接时,首先提交表单,然后转到链接,php,jquery,Php,Jquery,因此,我有一个设置与几个链接如下 <a class="someclass" href="http://www.google.com" id="link01">Google</a> <a class="someclass" href="http://www.yahoo.com" id="link02">Yahoo</a> <a class="someclass" href="http://www.cnn.com" id="link03">

因此,我有一个设置与几个链接如下

<a class="someclass" href="http://www.google.com" id="link01">Google</a>
<a class="someclass" href="http://www.yahoo.com" id="link02">Yahoo</a>
<a class="someclass" href="http://www.cnn.com" id="link03">CNN</a>
<a class="someclass" href="http://www.facebook.com" id="link04">Facebook</a>

$(".someclass").click(function() {
            var currentId = $(this).attr('id');
            var data = "do=clearthis&id=" + currentId;

              $.ajax({
                 type: "POST",
                  url: "clearance.php",
                  data: data,
                  success: function(msg){
                   }
                 });
               });
});

$(“.someclass”)。单击(函数(){
var currentId=$(this.attr('id');
var data=“do=clearthis&id=“+currentId;
$.ajax({
类型:“POST”,
url:“clearance.php”,
数据:数据,
成功:功能(msg){
}
});
});
});
我正在做的是修改被点击的链接,从链接中获取一个id值,然后ajax将其提交到我的PHP文件中,这将从我的数据库中删除该链接

因此,当用户单击某个链接时,该链接将从我的数据库中删除。然而,问题是它实际上不起作用。我想问题是它太快了,当jquery开始为我发布表单时,它已经跳转到目标链接了。在允许用户继续访问目标链接之前,是否有任何方法导致某种延迟,以允许my clearance.php处理删除


谢谢

发出同步AJAX请求,使其首先完成:

$.ajax({
  type: "POST",
  async: false,
  url: "clearance.php",
  data: data,
  success: function(msg){
  }
});

不同步请求的另一个解决方案:

$(".someclass").click(function() {
    var currentId = $(this).attr('id');
    var data = "do=clearthis&id=" + currentId;
    var linkUrl =   $(this).attr("href");
        $.ajax({
             type: "POST",
                url: "clearance.php",
                data: data,
                success: function(msg){
                 },
                complete: function(){
                    window.location.href = linkUrl;
                }
             });
         });
    return false;
});

这也是一个很好的解决方案,可以保持回调范例更完整。