使用PHP和AJAX创建一个简单的计数器

时间:2012-03-06 16:11:51

标签: php sql ajax codeigniter

我正在使用CodeIgniter构建一个Web应用程序。

网站上的帖子可以被用户所喜爱。我已经开发了可以吸引爱的总数的模型,但是我想在添加新的爱时使用AJAX进行更新。

使用以下代码显示总爱数:

<p><a href="#" id="lovecounter"><?php if ($post->love) { echo $post->love; } else { echo 0; } ?></a></p>

保存love数据的数据库表称为“post_rating”,结构如下:

  • ID
  • POST_ID
  • USER_ID
  • 等级

“评级”栏在默认情况下为0,对于爱情为1。

我从哪里开始?

说实话,在谈到Javascript和AJAX时,我总是一个菜鸟。我完全不知道从哪里开始,所以任何方向或想法都会非常感激!

感谢。

3 个答案:

答案 0 :(得分:0)

jQuery使AJAX变得非常简单。我最近自己学到了。请阅读thisthis以获取良好示例。

答案 1 :(得分:0)

在服务器上创建一个php页面,该页面接受按下“love”按钮触发的请求。在这个php页面中,您可以递增计数器并更新存储它的DB。然后,当呈现页面时,它们可以从DB加载此新计数。使用像MVC这样的设计模式使得这非常简单,因为您的所有请求都可以路由到正确的内容。我在www.phpblueprint.com上使用这种方法从运行PHPBlueprint的服务器动态加载每个滑动页面。

在客户端,只需让“love”按钮使用XMLHttpRequest触发ajax事件,或者只使用jQuery库Ajax API(非常非常简单和强大)。

<强>更新

抱歉,只是看到你正在使用CodeIgniter,这是一个很棒的MVC框架。 This will help you with what you want to do.

答案 2 :(得分:0)

首先,我认为“评级”栏目不是很有用,你只需要计算帖子通过“post_id”搜索的行数,你就会得到“爱”的数量或者“喜欢”的人投了票。

然后,关于javascript和ajax,我还建议使用JQUERY,它很容易使用AND现在Codeigniter附带了一个jquery库jquery http://codeigniter.com/user_guide/libraries/javascript.html

在你的情况下,在我的网站中,我们使用过这种方法:通过post或uri或你想要的方式调用所有数据的控制器函数,并回答json的回声:

<!-- language: lang-php -->
$this->output->set_content_type('application/json')
->set_output(json_encode(
     array('love' =>($this->loves_model->love_inserted() == TRUE)?'true':'false')
);

然后你只需要通过jquery获取数据并用它来改变DOM。