使用Jquery Post方法将数据传递到同一页面

时间:2015-10-07 02:59:03

标签: php jquery post

我是Jquery的新手,我的问题很简单,我正在尝试使用Jquery Post方法传递数据,我已经阅读了很多,但我无法弄清楚:

<!DOCTYPE html>
<html>
<head>

</head>
<body>
<div class="TestAd" id="TestAd">
<iframe data-aa='58593' src='https://ad.a-ads.com/58593?size=468x60' scrolling='no' style='width:468px; height:60px; border:0px; padding:0;overflow:hidden' allowtransparency='true' frameborder='0'></iframe>
</div>

<button>Send request</button>
<br>
<?php
if(!empty($_POST["block"])) {
         echo "Ads Are Blocked";

    }
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
var height = $('.TestAd').height();
$("button").click(function()
{      
      if (height==0)
      {
       $.post("", {block:true}); 
      }
}     
</script>
</body>
</html>

该脚本是一个简单的AdBlocker检查程序,感谢您的帮助

2 个答案:

答案 0 :(得分:1)

<form method="post">
<input type="hidden" value="true" name="block">
<input type="submit" value="Send request">
</form>
<?php
if(isset($_POST["block"])) {
         echo "Ads Are Blocked";

}
?>

如果要将其重定向到同一页面,为什么不使用简单的表单标记来传递块值。默认情况下,它会将其重定向到同一页面

答案 1 :(得分:0)

将您的PHP更改为:

<?php
if(isset($_POST["block"])) {
         echo "Ads Are Blocked";

}
?>

并将您的jQuery更改为:

<script>
var height = $('.TestAd').height();
$("button").click(function () {
    if (height == 0) {
        $.post("somepage.php",{block: true}, function (data) {
            // data is the response    
            // do something with it here 
            alert(data);
        });
    }
}
</script>

以下是$.post()的文档,基本上是您的方式,忽略响应。您必须将匿名函数(function (data) {})回调作为第3个参数传递才能使用响应。

来自文档:

  

实施例:   请求test.php页面并发送一些其他数据(同时忽略返回结果)。

     

$ .post(“test.php”,{name:“John”,time:“2pm”});