ばかげた質問ならまずは本当に申し訳ありませんが、私は初心者です。
それで私は最近fulephpを使い始めました、そして私は小さなサイトを持っています、そしてユーザーに他のユーザープロフィールを好きになる能力を与えたいです。
しかし、私はこの部分で少し経験がありません。だから私はテーブルを持っていますusers_like
id | users_id | liked_by
1 | 5 | 1
2 | 5 | 3
3 | 1 | 2
4 | 1 | 9
user_id
好きになったのはliked_by
誰ですか
だから私はユーザープロフィールにいいねボタンを持っています
<button class="like btn btn-primary" data-like="<?php echo $user->profile['user_id']; ?>">Like</button>
のdata-like
ようなものを取得するユーザーIDが含まれています
そして、インサートはこのように見えます
PHP関数
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
}
jQueryajaxの投稿
$('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はユーザーが好きなものを返します、そして私はこれをすることを考えていました
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
ボタンを表示するよりも等しくない場合は、ボタンを表示します。それ以外の場合は、ボタンを表示します。クリックすると、関数はそのようなものを削除します。
しかし、これが実際に配列を返すことを忘れたので、私はばかげていたので、これはノーノーです
だから私の質問は、次のことを達成するためにどういうわけかjquerycookieを使用する必要があるということです。
ユーザーが「いいね」をクリックすると、ユーザーはそのプロファイルを高く評価し、ボタンを「嫌い」に変更します。
または、誰かが私にこの解決策のちょっとしたヒント、ただのヒントやアドバイスをくれたらいいのにと思います。