[英]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.