$ .get()没有工作点击链接

时间:2013-03-02 14:25:33

标签: php jquery ajax codeigniter

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

<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()并添加一个警告(“你好”)时,点击时会出现一个警告框。但我不知道为什么$ .get()不起作用。

我在使用表单之前遇到过ajax和jquery的问题,在这种情况下我不得不求助于加载整个页面。在这种情况下我不能这样做,我不想那样做。请帮我弄清问题是什么。

5 个答案:

答案 0 :(得分:1)

你使用了jquery,为什么你不尝试使用jquery点击功能?

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

不是一个错字吗?

/sub/updatehit.php/? //shoudn't that be updatehit.php?aid=...

答案 3 :(得分:0)

尝试使用jQuery lib和script的这个顺序:

<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,您的函数调用未被触发。

答案 4 :(得分:0)

你说你使用 CodeIgniter ,而“sub”是一个控制器。 因此,“updatehit”必须是您的控制器的一种方法。 您希望收到以下两个参数:援助 uid

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

<?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 URLs