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