我是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检查程序,感谢您的帮助
答案 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”});