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;
});