使用javascript填充动态列表

时间:2012-01-27 13:24:45

标签: javascript codeigniter

我被困在某事上。

我想在点击“赞”时将用户的ID添加到数据库,并在<p id="likes_<? echo $item-id; ?>"></p>中显示一些用户信息。

<script type="text/javascript">
    var user_id = "<? echo $user_id; ?>";
</script>

<? foreach ($items->result() as $item): ?>
    <p>This is the <? echo $item->title; ?></p>
    <p><a class="test" id="<? echo $item->id; ?>" href="#">Like</a></p>
    The following like this:
    <p id="likes_<? echo $item->id; ?>"></p>
<? endforeach; ?>

这是用于发布的js文件。这就是我被困住的地方。我不知道如何返回每个帖子的数据。我对id $("p#likes_" + 8).html(data.content);进行了硬编码以测试它。除此之外一切正常。

$(document).ready(function() {

    $("a.test").click(function() {

            $.post(base_url + "index.php/home/like", { user_id : user_id, post_id : $(this).attr('id') }, function(data)
            {
                    alert(data);
            }, "json");

             });

            function get_like()
            {
                    $.post(base_url + 'index.php/home/get_like', { post_id : $(this).attr('id')  }, function(data)
                    {
                            var post_id = $(this).attr('id')
                            if (data.status == 'ok')
                            {
                                    $("p#likes_" + 8).html(data.content);
                            }

                    }, "json");
    }

    get_wait();

});

我没有发布控制器和型号代码,但如果需要我可以添加它。使用Codeigniter。

2 个答案:

答案 0 :(得分:0)

我不确定我是否感觉不舒服。我想你想要填满你所有的p#likes_X元素?如果是,则应将所有<p>放在一个根目录中,使用$("p").each(),将所有id拆分为_并运行您的函数get_like($id)

答案 1 :(得分:0)

Html5数据

<a href="#" class="rate" data-dir="up" data-itemid="8">Like</a>
<a href="#" class="rate" data-dir="down" data-itemid="8">Dislike</a>

-

$("a.rate").live('click', function(e){
    e.preventDefault();

    var data = {
        'dir' : $(this).data('dir'), 
        'itemid' : $(this).data('itemid')
    }

    //do ajax
    //append :after
    $($(this)).after("<p id=" + data.itemid + ">" + callback + "</p>");
});

从会话中获取用户ID(假设他们已登录)