CakePHP: создание моих собственных функций - PullRequest
0 голосов
/ 01 ноября 2010

У меня есть контроллер статьи и модель.Я хочу иметь функцию, которая добавляет один к целому числу при нажатии на ссылку.Итак, я сказал, что кнопка «Мне нравится» (ссылка) переводит меня в Articles / thumbsup, затем она берет поле thumbsup этой статьи и увеличивает его на единицу, затем сохраняет статью и перенаправляет в представление.

Я не уверен, как изменить записи таким образом.Мне нужно загрузить статью, изменить данные и затем сохранить их.

Я надеюсь, что это будет обработано javascript, поэтому никто не увидит изменение URL.

Может ли кто-нибудь помочь мне здесь?

Спасибо,

Джонси

Спасибо,

Билли

1 Ответ

1 голос
/ 01 ноября 2010

Вы можете сделать это с помощью AjaxRequest.

Модели / article.php:

function thumbsup($id = null)
  {
  $conditions = array('Article.id' => $id);
  $this->updateAll(
    array('Article.thumbsup' => 'Article.thumbsup + 1'),
    $conditions
    );
  $article = $this->find(
    'first',
    array('conditions' => $conditions, 'fields' => array('Article.thumbsup'))
    );
  return $article['Article']['thumbsup'];
  }

Контроллеры / articles_controller.php:

function thumbsup($id = null)
  {
  $this->set('count', $this->Article->thumbsup($id));
  $this->layout = 'ajax';
  }

просмотров / статьи / thumbsup.ctp:

<?php echo $count; ?>

WebRoot / JS / thumbsup.js:

$(document).ready(function()
  {
  $('.iLikeSomething').click(function()
    {
    $.post('http://yoursite.com/articles/incrementThumbsup/'+this.id, function(data)
      {
      $('#iLikeSomethingCount').html(data);
      });
    });
  });

Пример HTML для нажатия:

<span class="iLikeSomething" id="insertYourArticleIdHere" style="cursor: pointer;">iLike</span>
<div id="iLikeSomethingCount">0</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...