Заполнить динамический список с помощью JavaScript - PullRequest
1 голос
/ 27 января 2012

Я застрял на чем-то.

Я хочу добавить идентификатор пользователя в базу данных при нажатии кнопки «Мне нравится» и отобразить некоторую информацию о пользователе в <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, который также используется для публикации. Вот где я застрял. Я не знаю, как вернуть данные для каждого отдельного поста. Я жестко закодировал идентификатор $("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 голосов
/ 28 января 2012

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>");
});

Получение идентификатора пользователя из сеанса (предположим, что он вошел в систему)

0 голосов
/ 27 января 2012

Я не уверен, правильно ли я вас понял. Я полагаю, вы хотели бы заполнить все свои p#likes_X элементы? Если это так, вы должны поместить все <p> в один корень, использовать $("p").each(), разделить все id s на _ и запустить свою функцию get_like($id).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...