尝试创建一个非常简单的计数器,每次用户单击链接时,它会将mysql数据库表中的值更新为1。
<a href='http://somesupersite.com' id='246' class='track'>My Link</a>
应该获取id的javascript并将其传递给php脚本:
$(document).ready(function(){
$('a.track').click(function() {
$.post('http://mysupersite.com/sys/tracker.php', {id:this.id});
});
});
php脚本tracker.php应该获取post变量并更新mysql数据库表列:
$id = $_POST['id'];
$con = mysqli_connect($mysqlHost, $mysqlUser, $mysqlPassword, $mysqlDatabase);
mysqli_query($con, "UPDATE table SET clicks = clicks + 1 WHERE id = $id");
我没有收到任何错误,但数据库也没有更新。
答案 0 :(得分:2)
我建议你:
$(document).ready(function(){
$('a.track').click(function(e) {
e.preventDefault();
$.post('http://mysupersite.com/sys/tracker.php', {id:this.id}, function(){
window.location.href = e.target.getAttribute('href');
});
});
});
让您的链接从$.post()
的成功回调中导航。
在我看来,当您点击锚点时,它只会导航到href
提供的页面,因此可能无法调用ajax。
答案 1 :(得分:1)
试试这个:
$(document).ready(function(){
$('a.track').click(function() {
console.log("here");
$.post('http://mysupersite.com/sys/tracker.php', {id:this.id});
});
});
单击a
标记时,它会跳转到另一页。所以这个功能不起作用。
如果您在此处获取日志,则可以正常运行。
答案 2 :(得分:0)
在上下文中使用event.preventDefault()
$(document).ready(function(){
$('a.track').click(function(event) {
event.preventDefault();
$.post('http://mysupersite.com/sys/tracker.php', {id:this.id});
});
});