CakePHP - Застрял в получении нового результата из Db, используя jQuery - PullRequest
0 голосов
/ 02 июля 2011

Мне нужна помощь в решении следующей проблемы.

У меня есть настройки системы, когда пользователь нажимает на изображение (ThumbsUp или ThumbsDown) и указанное поле в БД увеличивается на 1, а новыйРезультат должен быть отправлен обратно на просмотр.Я могу использовать jQuery для увеличения значения в БД, но не могу получить правильное значение для обновления.Это просто отображается как Array, что, я думаю, я знаю, почему.Но как мне это исправить?

enter image description here

Мой файл просмотра

...
<div id="article_thumbsUp">
    <?php echo $comment['Comment']['liked'];?>
</div>
<img class="voteup" width="20" src="/img/icons/thumb-up-icon.png">  
...

Мой код jQuery

<script>
    $(".voteup").click(function() {
        $('#article_thumbsUp').change(function() {
            $(this).load('/comments/voteup/10');
            function(result) {
                $('#article_thumbsUp').html(result);
            };
        })
        .change();
    });
</script>

ОтносительноjQuery, где у меня есть /comments/voteup/10, как мне заменить 10 на $comments['Comment']['id']

И мой файл контроллера

function voteUp($id = null){    

    $this->autoRender = false;  

    if($this->RequestHandler->isAjax()){
        $this->Comment->id = $id;
        if($this->Comment->saveField(
                          'liked',
                          $this->Comment->field('liked')+1)){           
                        $newValue =  $this->Comment->findById($id);
              }
    }

    return $newValue;
}

Я знаю findById создает массив данных,Как мне вернуть только поле liked.

Большое спасибо,

1 Ответ

1 голос
/ 02 июля 2011

Я считаю, что вы должны использовать $newValue['Comment']['liked'], чтобы получить понравившееся поле.

Что касается javascript, я бы динамически напечатал номер идентификатора в разделе сценария в вашем html.Это означает, что скрипт должен быть в теле вашего документа.

например

<script>
    $(".voteup").click(function() {
        $('#article_thumbsUp').change(function() {
            $(this).load('/comments/voteup/<?php echo $comments['Comment']['id']?>');
            function(result) {
                $('#article_thumbsUp').html(result);
            };
        })
        .change();
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...