首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fuel php orm配置文件,如

Fuel php orm配置文件,如
EN

Stack Overflow用户
提问于 2012-11-08 22:55:05
回答 1查看 239关注 0票数 0

首先,如果这是一个愚蠢的问题,真的很抱歉,但我是一个初学者。

所以我最近开始使用fulephp,我有一个小网站,我想让用户有能力喜欢其他用户的个人资料。

但我在这方面有点经验不足。所以我有一个表users_like

代码语言:javascript
复制
id | users_id | liked_by
1  | 5        | 1
2  | 5        | 3
3  | 1        | 2
4  | 1        | 9

user_id是谁得到了相似,liked_by是谁给予了相似

因此,我在用户配置文件上有一个like按钮

代码语言:javascript
复制
<button class="like btn btn-primary" data-like="<?php echo $user->profile['user_id']; ?>">Like</button>

data-like包含获得类似内容的用户id

插入物看起来像这样

PHP函数

代码语言:javascript
复制
public function action_like($id)
    {
        if(Input::is_ajax()):

            $response = Response::forge();

                $like = Model_Like::forge();
                $like->user_id = $id;
                $like->liked_by = Session::get('sentry_user');
                $like->save();

                $response->body(json_encode(array(
                    'status' => 'liked',
                )));

            return $response;


        endif;// is ajax
    } 

jQuery ajax帖子

代码语言:javascript
复制
$('button.like').on('click', function(){
    var likeId = $(this).data('like');
    $.ajax({
        type: "POST",
        url: siteUrl + "profile/like/" + likeId,
        dataType: "json",
        context: this,
        beforeSend: function()
        {
            $(this).attr('disabled', 'disabled');
        },

        success: function(data)
        {
            if(data.status === "liked") {
                $(this).removeClass('like')
                .addClass('unlike')
                .text('Un-Like');

            }
        }, 

        complete: function()
        {
            $(this).removeAttr('disabled', 'disabled');
        }
    });
});

所以实际上我的逻辑是这样的。

orm返回用户喜欢的内容,我正在考虑这样做。

代码语言:javascript
复制
if(Session::get('sentry_user') != $like['liked_by']) {
  <button class="like btn btn-primary" data-like="<?php echo $user->profile['user_id']; ?>">Like</button>
}
else {
  <button class="unlike btn btn-primary" data-like="<?php echo $user->profile['user_id']; ?>">Un-Like</button>

}

所以如果登录的用户id不等于liked_by,那么显示按钮就像否则显示按钮就不一样,如果他们点击了,函数就会移除类似的东西

但我很愚蠢,因为我忘记了这实际上返回数组,所以这是一个禁忌

所以我的问题是,我应该以某种方式使用jquery cookie来实现以下目标。

当用户点击“如何获得用户喜欢的个人资料”并将按钮更改为“不同”时。

或者可以请某人给我这个解决方案的一点提示,只是一个提示或建议。

EN

回答 1

Stack Overflow用户

发布于 2012-11-09 01:04:49

在我看来,我是这样做的:

1)用户登录并将其id保存到会话数据中

2)当用户请求某个页面时,我们返回按钮“喜欢”或“不像”(建议输出2个隐藏的按钮,如下所示)

3)当用户点击" like“时:通过jquery like进行发布,成功后可以通过更改样式、文本、事件等来更改按钮,但我建议您隐藏”like“按钮并显示”like“。

4)当用户点击“不像”时:与3)相同,但在成功时更改为“喜欢”按钮

PS:在服务器端,我建议返回true或false,无论成功还是失败。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13291427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档