Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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 我哪里做错了-阿贾克斯_Php_Javascript_Ajax_Jquery - Fatal编程技术网

Php 我哪里做错了-阿贾克斯

Php 我哪里做错了-阿贾克斯,php,javascript,ajax,jquery,Php,Javascript,Ajax,Jquery,我有以下链接- <a href="ex.com" onClick="return popitup2('<?php echo $var3; ?>');">Grab Coupon</a> 函数popitup2()的代码为- 函数popitup2(id){ $.ajax({ url:“http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php“+”?“+id, 成功:函数(){ 警

我有以下链接-

<a href="ex.com" onClick="return popitup2('<?php echo $var3; ?>');">Grab Coupon</a>
函数popitup2()的代码为-


函数popitup2(id){
$.ajax({
url:“http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php“+”?“+id,
成功:函数(){
警报(“数据已保存:”);
}
});
newwindow2=window.open(“”,'name','height=225,width=350');
var tmp=newwindow2.document;
…更多的代码。。。 …最后

    return true;
}
</script>
返回true;
}

现在,当我单击链接ex.com时,它将打开,没有任何警报,也就是说,没有通过ajax和javascript运行php脚本。如果我从函数popitup2()中删除ajax调用,那么剩余的javascript将正确执行。

这里发生的是,您正在执行一个异步ajax请求,这意味着当您执行该请求时,函数的其余部分将继续运行。当AJAX结果返回时,它会在
success
函数中触发
警报
,但是由于您单击了一个链接,您已经离开了该页面

尝试在ajax函数的参数中添加一个
async:false
,等待返回结果后再继续,如下所示:

$.ajax({
    url: "http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php"+"?"+id,
    async: false,
    success: function() {
       alert( "Data Saved: ");
    }
 });

您正在向JS函数传递两个参数。但函数原型(第一行)只接受一个。这将导致JS错误。

同意前面的回答,即您正在执行异步Ajax请求。 从文档中可以看出,异步参数在两种情况下可能不起作用:跨域请求或数据类型为:“jsonp”。 如果您正在进行跨域请求,我只能建议:

<a href="ex.com" onClick="return popitup2('<?php echo $var3; ?>', this);">Grab Coupon</a>
<script type="text/javascript">
function popitup2(id, link) {
  $.ajax({
    url: "http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php"+"?"+id,
    context: link,
    success: function(){
      alert( "Data Saved: " );
      window.location = $(this).attr("href");
   }
  ....
  return false;
});

函数popitup2(id,链接){
$.ajax({
url:“http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php“+”?“+id,
背景:链接,
成功:函数(){
警报(“数据已保存:”);
window.location=$(this.attr(“href”);
}
....
返回false;
});

通过这种方法,我们可以肯定地跟踪单击。
这种方法还有一个问题,跟踪服务器应该很快,否则,用户将等待很长时间,直到导航到资源。

var3只是一个初始化为“sometext,sometext”的变量值。它是单个变量。添加async参数没有帮助。仍然是一样的。它只是迁移到另一个页面而没有运行任何脚本。
$.ajax({
    url: "http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php"+"?"+id,
    async: false,
    success: function() {
       alert( "Data Saved: ");
    }
 });
<a href="ex.com" onClick="return popitup2('<?php echo $var3; ?>', this);">Grab Coupon</a>
<script type="text/javascript">
function popitup2(id, link) {
  $.ajax({
    url: "http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php"+"?"+id,
    context: link,
    success: function(){
      alert( "Data Saved: " );
      window.location = $(this).attr("href");
   }
  ....
  return false;
});