인터넷의 급속한 발전과 함께 웹 애플리케이션의 사용자 경험이 점점 더 중요한 요소가 되었습니다. Ajax 기술을 사용하여 유사한 기능을 구현하는 것이 일반적인 방법입니다. 이 기사에서는 ThinkPHP 프레임워크를 사용하여 Ajax 기반 유사 기능을 빠르게 구현하는 방법을 소개합니다.
1. 개발 환경 준비
이 글에서는 ThinkPHP5.1 프레임워크를 사용하며, PHP5.5 이상과 MySQL 데이터베이스를 설치하고 ThinkPHP를 실행할 수 있는 환경인지 확인해야 합니다.
2. 데이터베이스 테이블 만들기
MySQL에서 다음 테이블을 만듭니다.
1 2 3 4 5 6 7 8 | CREATE TABLE `likes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content_id` int(11) NOT NULL COMMENT '点赞的文章id' ,
`user_id` int(11) NOT NULL COMMENT '点赞的用户id' ,
`created_time` int(11) NOT NULL DEFAULT '0' COMMENT '点赞时间戳' ,
`updated_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间戳' ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
로그인 후 복사
3. 컨트롤러 레이어
LikesController.php 컨트롤러를 만들고 다음 코드를 사용하여 Ajax 요청을 가져옵니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | namespace app\index\controller;
use think\Controller;
use think\Db;
class LikesController extends Controller
{
public function like()
{
$content_id = input( 'post.content_id' );
$user_id = input( 'post.user_id' );
$created_time = time();
$updated_time = time();
$data = [
'content_id' => $content_id ,
'user_id' => $user_id ,
'created_time' => $created_time ,
'updated_time' => $updated_time ,
];
$result = Db::name( 'likes' )->insert( $data );
if ( $result ) {
return json([ 'code' => 200, 'msg' => '点赞成功' ]);
} else {
return json([ 'code' => 500, 'msg' => '点赞失败' ]);
}
}
}
|
로그인 후 복사
4.
Creation index.html 프런트 엔드 페이지는 jQuery를 사용하여 사용자 클릭 이벤트를 모니터링하고 Ajax 요청을 서버에 보냅니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <!DOCTYPE html>
<html>
<head>
<title>点赞</title>
<meta charset= "utf-8" >
<script type= "text/javascript" src= "https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" ></script>
</head>
<body>
<div id= "like_button" data-content-id= "1" data-user-id= "1" >点赞</div>
</body>
<script type= "text/javascript" >
$(document).ready( function () {
$( '#like_button' ).click( function () {
var content_id = $(this).data( 'content-id' );
var user_id = $(this).data( 'user-id' );
$.ajax({
url: "/LikesController/like" ,
type: "POST" ,
dataType: "json" ,
data: { "content_id" : content_id, "user_id" : user_id},
success: function (data) {
if (data.code == 200) {
alert(data.msg);
} else {
alert(data.msg);
}
}
});
});
});
</script>
</html>
|
로그인 후 복사
5. 라우팅 설정
라우팅 파일(route.php)에 경로 추가:
1 | Route::post( '/LikesController/like' , 'index/LikesController/like' );
|
로그인 후 복사
6. 테스트
서버를 시작하고 http://localhost/index/index/index를 방문하여 좋아요를 클릭하여 이 기능을 테스트하세요. 좋아요가 성공적으로 이루어졌는지 확인하려면 MySQL의 좋아요 테이블에 레코드가 추가되었는지 확인하세요.
7. 요약
ThinkPHP 프레임워크와 jQuery 기술을 사용하여 Ajax 기반 like 함수를 구현합니다. 이 기능은 웹 애플리케이션의 사용자 경험을 향상시키고 사용자와 웹 애플리케이션 간의 상호 작용을 향상시킬 수 있습니다.
위 내용은 thinkphp는 Ajax를 기반으로 유사한 기능을 신속하게 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!