0

当用户单击链接时,我正在尝试更新数据库中的表。我想在不加载另一个页面的情况下做到这一点

<a href="#" onclick="capturehit()">Like</a> 

这是脚本

<script>
function capturehit() {
$.get("/sub/updatehit/?aid=<?php echo $article_id; ?>&uid=<?php echo $userid; ?>");
return false;
}
</script>

sub 是我的控制器。我正在使用 Codeigniter。

问题是这不起作用。当我评论 $.get() 并添加一个警报(“Hello”)时,点击时会出现一个警报框。但我不知道为什么 $.get() 不起作用。

我之前在使用表单时也遇到过 ajax 和 jquery 的问题,在这些情况下,我不得不求助于加载整个页面。在这种情况下,我不能那样做,我不想那样做。请帮助我找出问题所在。

4

5 回答 5

1

你已经使用 jquery 了,为什么你不尝试使用 jquery click 功能呢?

 $(function(){
    $("#element").click(function(){
       $.get("/sub/updatehit/?aid=<?php echo $article_id; ?>&uid=<?php echo $userid; ?>");
       return false;
    }) 
 })
于 2013-03-02T14:59:35.573 回答
0

试试这个 jQuery lib 和脚本的顺序:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
  function capturehit() {
    $.get("/sub/updatehit/?aid=<?php echo $article_id; ?>&uid=<?php echo $userid; ?>");
  }
</script>

看来你是missing the jQuery library at top of this script。这就是为什么alert()会发生但你的函数调用没有被触发,因为might not be jQuery available before this script你的页面中有。

于 2013-03-02T15:00:16.897 回答
0

如果您返回 false,您将收到一个警告框。尝试从脚本中删除返回条件。

于 2013-03-02T14:29:16.893 回答
0

你说你使用CodeIgniter并且“sub”是一个控制器。所以,“updatehit”必须是你的控制器的一个方法。你想接收这两个参数:aiduid

您的“子”控制器应如下所示:

<?php
class Sub extends CI_Controller {

    public function updatehit($aid, $uid)
    {

    }
}

或这个:

<?php
class Sub extends CI_Controller {

    public function updatehit()
    {
        $aid = $this->input->get('aid');
        $uid = $this->input->get('uid');
    }
}

这就是 CodeIgniter 的工作原理。请记住,CodeIgniter 使用基于段的方法。要调用您的 updatehit() 方法(并传递两个参数,例如aid = 2 和 uid = 3),URL 必须如下所示:

http://www.example.com/sub/updatehit/2/3/

所以你的javascript代码变成:

function capturehit() {
    $.get("/sub/updatehit/<?php echo $article_id; ?>/<?php echo $userid; ?>");
    return false;
}

以更恰当的方式,使用 jQuery click 事件(参见 EnterJQ 响应):

喜欢

$(function(){
    $("a#like").click(function(){
        $.get("/sub/updatehit/<?php echo $article_id; ?>/<?php echo $userid; ?>/");
        return false;
    });
})

有关更多信息,请参阅CodeIgniter URL

于 2013-03-02T15:24:00.840 回答
0

那里没有错字吗?

/sub/updatehit.php/? //shoudn't that be updatehit.php?aid=...
于 2013-03-02T14:35:41.540 回答