虽然我已经关注了http://api.jquery.com/jQuery.post/的示例代码,当然还有Stackoverflow,但我找不到解决问题的方法。
我在html中有一个切换图像,每次用户点击它时,都会更改图像并更新DB中的列。这是代码:
HTML
<input type="image" src="smileys/heart.gif" class="play" onclick="toggle(this,'<?php echo $ida;?>')"/>
AJAX
function toggle(el,al){
if(el.className=="play")
{
el.src='smileys/lol.gif';
el.className="pause";
$.post("update.php", { "hr": 1, "ida": al } );
}
else if(el.className=="pause")
{
el.src='smileys/heart.gif';
el.className="play";
$.post("update.php", { "hr": 0, "ida": al } );
}
console.log(al);
return false;
}
update.php
<?php
$host = "localhost";
$user = "user";
$pass = "pass";
$database = "db";
$heart=$_GET["hr"];
$ida=$_GET["ida"];
$con = mysql_connect($host,$user,$pass);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($database, $con);
mysql_query("UPDATE tablename SET heart='$heart' WHERE id='$ida'");
?>
切换功能运行良好,但用户点击图像时不会更新数据库。
我认为它与$.post
函数有关,而不是将数据正确发送到php。
BTW如果我这样做
http://domain.com/update.php?hr=1&ida=127
它有效。
注意:我只使用mysql而不是PDO这个例子。 ...是的,我的代码很乱,很难看,还在学习。 有帮助吗? 感谢
答案 0 :(得分:3)
嗯,这是_POST请求,而不是_GET,因此,要捕获其值,您需要使用$_POST
代替$_GET
。
另外,正如我注意到的那样,还有_GET链接,因此您需要使用$.post
更改$.get
。