2012-01-27 85 views
1

我被困在某物上。使用javascript填充动态列表

我想在单击Like时将用户的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。

+0

我认为你的问题是在客户端?如果是这样,请给我们演示jsfiddle.net – IProblemFactory 2012-01-27 14:13:06

+0

最终结果将显示用户信息,一旦按下了Like。但那不是我现在的主要问题。我只是不知道如何使用'$(“p#likes_”+ 8).html(data.content);'来显示每个单独项目的数据。 – Ciprian 2012-01-27 14:19:09

回答

0

我不确定我是否不够正确。我假设你想填满你所有的p#likes_X元素?如果是这样,您应该将所有<p>放在一个根目录中,使用$("p").each(),将所有id s分割为_并运行您的函数get_like($id)

+0

是的,每个项目都有一个个人ID。当有人点击Like时,项目ID和用户ID将被发送到数据库。然后对于每个项目,我想获取与其关联的用户标识。我不明白你的意思,你能举个例子吗? – Ciprian 2012-01-27 14:39:58

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(假设他们登录)

+0

谢谢你的帮助,但我认为我没有做正确的事情。我错过了某个步骤,无法弄清楚这一点。 – Ciprian 2012-01-28 21:58:47