Rumah  >  Artikel  >  rangka kerja php  >  thinkphp dengan cepat melaksanakan fungsi seperti berdasarkan Ajax

thinkphp dengan cepat melaksanakan fungsi seperti berdasarkan Ajax

PHPz
PHPzasal
2023-04-10 09:04:07707semak imbas

Dengan perkembangan pesat Internet, pengalaman pengguna aplikasi web telah menjadi faktor yang semakin penting. Menggunakan teknologi Ajax untuk melaksanakan fungsi serupa adalah cara biasa. Artikel ini akan memperkenalkan cara menggunakan rangka kerja ThinkPHP untuk melaksanakan fungsi seperti berasaskan Ajax dengan cepat.

1. Persediaan persekitaran pembangunan

Artikel ini menggunakan rangka kerja ThinkPHP5.1 Anda perlu memasang PHP5.5 ke atas dan pangkalan data MySQL, dan memastikan persekitaran boleh menjalankan ThinkPHP.

2. Cipta jadual pangkalan data

Buat jadual berikut dalam MySQL:

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 Lapisan Pengawal

Buat pengawal SukaController.php , gunakan kod berikut untuk mendapatkan permintaan Ajax:

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. Lihat lapisan

Buat halaman hadapan hadapan index.html, gunakan jQuery untuk mendengar acara klik pengguna dan hantar Ajax permintaan kepada pelayan:

<!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 Tetapan penghalaan

Tambah laluan dalam fail penghalaan (route.php):

Route::post('/LikesController/like', 'index/LikesController/like');

6 🎜>

Mulakan pelayan , lawati http://localhost/index/index/index, klik Suka untuk menguji fungsi ini. Semak sama ada rekod ditambahkan dalam jadual suka dalam MySQL untuk memastikan suka berjaya.

7. Ringkasan

Dengan menggunakan rangka kerja ThinkPHP dan teknologi jQuery, fungsi seperti berasaskan Ajax dilaksanakan. Ciri ini boleh meningkatkan pengalaman pengguna aplikasi web dan meningkatkan interaksi antara pengguna dan aplikasi web.

Atas ialah kandungan terperinci thinkphp dengan cepat melaksanakan fungsi seperti berdasarkan Ajax. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn