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()にコメントしてalert( "Hello")を追加すると、クリックするとアラートボックスが表示されます。しかし、なぜ$ .get()が機能しないのかわかりません。

以前、フォームを使用しているときにajaxとjqueryで問題が発生しました。そのような場合は、ページ全体を読み込む必要がありました。この場合、私はそれをすることができません、私はそれをしたくありません。問題が何であるかを理解するのを手伝ってください。

4

5 に答える 5

1

あなたはjqueryを使用しているのに、なぜjqueryクリック機能を試さないのですか?

 $(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

falseを返すと、アラートボックスが表示されます。スクリプトから戻り条件を削除してみてください。

于 2013-03-02T14:29:16.893 に答える
0

そこにタイプミスはありませんか?

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

jQuerylibと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

于 2013-03-02T15:00:16.897 に答える
0

あなたはCodeIgniterを使用していて、「サブ」はコントローラーであると言いました。したがって、「updatehit」はコントローラーのメソッドである必要があります。次の2つのパラメーターを受け取ります: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()メソッドを呼び出す(そして2つのパラメーター、たとえば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クリックイベントを使用します(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 に答える