PHP + Laravel 的簡單應用教程 — ajax 的使用

22發表於2020-12-12

宣告

本文只是零散的應用教程,預設 Laravel 專案已經安裝完成,並正常執行;

需要系統性的學習可以參考社群的 Laravel 教程

Windows 下的 Laravel 安裝請參考:部落格:Windows 環境下安裝 Laravel
系統性的學習 Laravel 可以參考:《L01 Laravel 教程 - Web 開發實戰入門 ( Laravel 7.x )》

Ajax 的使用

建立控制器

在專案根目錄下執行命令

php artisan make:controller TestController

建立成功會提示 Controller created successfully.
建立成功後會在 app/Http/Controllers/ 目錄下生成 TestController.php 檔案
TestController.php 檔案中加入

public function index(){
    return view('test');
}

public function testAjax(){
    echo '請求成功了';die;
}

PHP + Laravel 的簡單應用教程 — ajax 的使用

建立檢視檔案

resources/views 目錄中新建一個檢視檔案 test.blade.php

PHP + Laravel 的簡單應用教程 — ajax 的使用
檔案中的內容如下

PHP + Laravel 的簡單應用教程 — ajax 的使用

路由配置

開啟路由檔案 routes/web.php ,預設路由如下:

PHP + Laravel 的簡單應用教程 — ajax 的使用

下方新增一條展示測試 Ajax 頁面的路由

Route::get('test', [TestController::class, 'index'])->name('test.index');

新增一條接收 Ajax 請求的路由

Route::post('test', [TestController::class, 'testAjax'])->name('test.ajax');

更多路由相關內容請檢視文件 路由《Laravel 8 中文文件》

增加進入測試頁面的入口

開啟 resources/views/welcome.blade.php 檔案,找到大概 111 行的位置:

PHP + Laravel 的簡單應用教程 — ajax 的使用

複製內容,修改為需要的測試頁面入口

<a href="{{route('test.index')}}" class="ml-1 underline">
    測試入口
</a>

PHP + Laravel 的簡單應用教程 — ajax 的使用

儲存後重新整理頁面,就能看到測試入口了

PHP + Laravel 的簡單應用教程 — ajax 的使用

點選測試入口,進入測試頁面,會看到以下內容

PHP + Laravel 的簡單應用教程 — ajax 的使用

修改頁面內容

將下載好的 jquery.min.js 放入 public/assets/ 目錄下

PHP + Laravel 的簡單應用教程 — ajax 的使用

修改 resources/views/test.blade.php 檔案的內容

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Test Ajax</title>
    <script src="{{asset('assets/jquery.min.js')}}"></script>
</head>
<body>
    返回的內容:<p style="color: red" class="response-message"></p>
    <form method="post" action="{{route('test.ajax')}}">
        {!! csrf_field() !!}
        提交的內容:<input type="text" name="text">
        <span class="submit-btn">提交</span>
    </form>
</body>
<script>
    $('.submit-btn').click(function () {
        let url = $(this).closest('form').attr('action');
        let formData = $(this).closest('form').serialize();
        $.post(url,formData,function (response) {
            $('.response-message').text(response);
        })
    })
</script>
</html>

點選測試頁面的 提交 可以看到控制器中 testAjax() 返回的內容已經顯示在頁面上

PHP + Laravel 的簡單應用教程 — ajax 的使用

PHP + Laravel 的簡單應用教程 — ajax 的使用

修改控制器中接收請求介面的內容

檔案路徑 app/Http/Controllers/TestController.php 原內容

PHP + Laravel 的簡單應用教程 — ajax 的使用
修改後的內容:

PHP + Laravel 的簡單應用教程 — ajax 的使用

修改前端頁面

檔案路徑 resources/views/test.blade.php

$('.submit-btn').click(function () {
        let url = $(this).closest('form').attr('action');
        let formData = $(this).closest('form').serialize();
        $.post(url,formData,function (response) {
            let responseData = response.data;
            let appendStr = '<span style="border: 1px solid blue">'+responseData.text+'</span>';
            $('.response-message').empty().append(appendStr);
        })
})

儲存後在頁面輸入框中輸入內容,點選提交後即可看到最新內容

PHP + Laravel 的簡單應用教程 — ajax 的使用

結語

本文講的是基礎的介面應用,還有比如 Vue、Recat、mui 等專案中請求介面的示例請自行了解

本作品採用《CC 協議》,轉載必須註明作者和本文連結
www.haowuliaoa.com

相關文章