簡體   English   中英

CakePHP:創建我自己的函數

[英]CakePHP: creating my own functions

我有一個Article控制器和模型。 我希望有一個函數,當單擊鏈接時,該函數會將一個整數加1。 因此,我說了一個“我喜歡”按鈕(鏈接),它將帶我到Articles / thumbsup,它將使用該文章的thumbsup字段並將其遞增1,然后保存該文章並重定向到視圖。

我不確定如何以這種方式修改記錄。 我需要加載文章,修改數據然后保存。

我希望這可以由javascript處理,因此沒人會看到url的變化。

有人可以幫我嗎?

謝謝,

瓊斯

謝謝,

比利

您可以使用AjaxRequest做到這一點。

models / 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'];
  }

controllers / 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM