您好,我正在嘗試制作一個按鈕,一旦點擊,我就會保存在文本欄位中寫入的資訊以及當前登錄的用戶 ID。單擊后只需重繪 頁面(或什么都不做)并將該資訊保存在資料庫中。
但是我的按鈕什么都不做...
我的控制器:
public function addSchool(Request $request)
{
DB::table('schools')->insertGetId([
'id_professor' => Auth::id(),
'escola' => $request->input('escola')
]);
return redirect('/teacher');
}
我有文本欄位和按鈕的區域:
<div class="form-group">
<h3 style="color: #000000" for="escola">Nome da Escola</h3>
<input type="text" id="escola" name="escola" class="form-control">
</div>
<div>
<button type="submit" class="btn btn-danger">Registar Escola</button
</div>
我沒有在這里添加任何 web.php(路由檔案),因為我不希望它進入任何頁面。
這些是我的資料庫列
uj5u.com熱心網友回復:
你不能只用 PHP 來保存沒有路由的方法。如果你想這樣做,看看 livewire 組件,它允許你在 PHP 中使用 Javascript。但是你需要很少懂 Javascript。我建議您創建一個帶有名稱的路由并將其指向方法
在 web.php 中
Route::post('/post-form', [YourController::class, 'addSchool'])->name('addschool');
然后在你看來之后
<form action="{{route('addschool')}}" method="post">
@csrf
<div class="form-group">
<h3 style="color: #000000" for="escola">Nome da Escola</h3>
<input type="text" id="escola" name="escola" class="form-control"/>
</div>
<div>
<button type="submit" class="btn btn-danger">Registar Escola</button>
</div>
</form>
uj5u.com熱心網友回復:
您可以通過使用點擊事件附加到按鈕從前端使用 ajax 呼叫來做到這一點。它會動態地將請求發送到您指定的控制器方法,您可以在前端指定的地方顯示回應(資料)而無需頁面加載
例如看看給定的代碼
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$(".btn-submit").click(function(e){
e.preventDefault();
var escola = $("input[name=escola]").val();
$.ajax({
type:'POST',
url:'{{route('addschool')}}',
data:{name:escola},
success:function(data){
alert(data.success);
//add your login here for the response
}
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/330673.html
上一篇:如何阻止React按鈕同步渲染?
