我无法让我的$ _POST出于某种原因工作......这就是代码:
* 从href onClick事件调用的Javascript: *
function feedVote(postId, vote) {
if(vote == "1") {
document.getElementById('voteUpSpan' + postId).innerHTML = "Thank you for voting!";
document.getElementById('voteDownSpan' + postId).innerHTML = "";
var i = new Image();
var d = new Date();
i.src = "voteUp.php?time=" + d.getTime() + "&postId=" + postId;
}
}
因此它会欺骗图像并运行我的voteUp.php页面传递参数而不更改当前页面。
<?php
$id = $_POST['postId'];
$con = mysql_connect("localhost", "username", "password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$update = mysql_query("UPDATE posts SET upvote = upvote + 1 WHERE id = '$id'");
mysql_close($con);
echo "$id";
?>
echo&#34; $ id&#34 ;;什么都没有返回所以它显然甚至没有在$ id中放入一个变量,这就是为什么我的sql语句没有被运行但为什么......
当我在Google Crome中运行代码时,我使用Inspect源代码下的网络跟踪功能,这是它在运行我的欺骗图像时触发的网址。
test.com/voteUp.php?time=1327644851907&postId=35
**我编辑了一些信息,例如我的数据库名称和用户名/密码以及网站网址。
答案 0 :(得分:3)
这些参数称为 GET 参数,而不是POST。
使用$_GET
超级全局(以与$_POST
相同的方式使用它)来访问它们。
答案 1 :(得分:1)
如果你想发帖,请做一些jquery ajax帖子,如下:
而不是:
var i = new Image();
var d = new Date();
i.src = "voteUp.php?time=" + d.getTime() + "&postId=" + postId;
改变它:
$.ajax({
url: "voteUp.php",
cache: false,
type: 'POST',
data: {time: d.getTime(), postId: postId},
success: function(data){}
});
注意:您需要在该网页上使用jquery!
答案 2 :(得分:0)
使用?
数组而不是$_GET
访问网址的查询字符串中显示的变量(即在$_POST
字符之后)。