【问题标题】:Creating a simple like counter using PHP and AJAX使用 PHP 和 AJAX 创建一个简单的类似计数器
【发布时间】:2012-03-06 16:11:50
【问题描述】:

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

网站上的帖子会受到用户的喜爱。我已经开发了获取总爱数的模型,但我想在添加新爱时使用 AJAX 进行此更新。

总爱数显示如下代码:

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

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

  • 身份证
  • post_id
  • user_id
  • 评分

“评分”列默认为 0,爱为 1。

我从这里去哪里?

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

谢谢。

【问题讨论】:

  • 向控制器发出 AJAX 请求(例如使用 jQuery),并让控制器回显所需的响应;现在 AJAX 会选择该响应,您可以随意操作它
  • 很好的解释。感谢您打破流程,Damien!

标签: php sql ajax codeigniter


【解决方案1】:

jQuery 让 AJAX 变得非常简单。我最近自己学会了。阅读thisthis 以获得很好的示例。

【讨论】:

  • 感谢您的链接,杰夫。我读了第一个,但它在 JSP 部分迷失了我。早上我会看一些 AJAX/CodeIgniter 视频。
  • 是的,第二个链接实际上更有用,更适用于您的情况。
【解决方案2】:

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

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

更新

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

【讨论】:

  • 干杯,伙计。我实际上把那个视频保存在我的电脑上,信不信由你。我下载了整个系列!明天我会再看一遍,看看我是否能理解这一切。
【解决方案3】:

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

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

在您的情况下,在我的网络中,我们使用了这种方法:通过 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。

【讨论】:

  • 我包含评级列的原因是因为我计划添加“仇恨”功能。仇恨将由 -1 表示。这有意义吗?
  • 仇恨也可以算,但如果仇恨多,就会消耗很多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多