宣告
本文只是零散的應用教程,預設 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;
}
建立檢視檔案
在 resources/views
目錄中新建一個檢視檔案 test.blade.php
檔案中的內容如下
路由配置
開啟路由檔案 routes/web.php
,預設路由如下:
下方新增一條展示測試 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 行的位置:
複製內容,修改為需要的測試頁面入口
<a href="{{route('test.index')}}" class="ml-1 underline">
測試入口
</a>
儲存後重新整理頁面,就能看到測試入口了
點選測試入口,進入測試頁面,會看到以下內容
修改頁面內容
將下載好的 jquery.min.js
放入 public/assets/
目錄下
修改 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()
返回的內容已經顯示在頁面上
修改控制器中接收請求介面的內容
檔案路徑 app/Http/Controllers/TestController.php
原內容
修改後的內容:
修改前端頁面
檔案路徑 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);
})
})
儲存後在頁面輸入框中輸入內容,點選提交後即可看到最新內容
結語
本文講的是基礎的介面應用,還有比如 Vue、Recat、mui 等專案中請求介面的示例請自行了解
本作品採用《CC 協議》,轉載必須註明作者和本文連結