Примечание: я использую Laravel
Это мой выпадающий список, и я хочу иметь возможность обновлять переменную php, которая хранится в моей базе данных. $SetNewMatch = Auth::user()->dailyMatch;
<form>
<select name = "dailyMatch">
<option value="Pop">Pop</option>
<option value="Classical">Classical</option>
<option value="Rock">Rock</option>
</select>
<button type="submit">
{{ __('Submit') }}
</button>
</form>
После того как пользователь отправит значение, нажав кнопку отправки, я хочу, чтобы логическая переменная также обновилась до true, поэтому $book = true
,
Как только пользователь выбрал значение из выпадающего списка, а логическое значение равно true. Я хочу, чтобы появилось расположение лезвий или даже появился класс Div.
Я пробовал ниже, но его не отображается
<?php
if ($book == true)
{
@include 'layouts.divAPIclass');
}
else
{
echo "error";
}
?>
Я знаю, что это много, но если у вас есть какие-либо вопросы, просто задавайте. Если у вас есть более эффективные способы сделать это, пожалуйста, предложите. Спасибо
У вас есть варианты для этого. Я не знаю, как выглядит ваш файл маршрутов, но я предполагаю, что в вашем файле веб-маршрутов есть следующее.
Route::post('/your/route', 'MatchController@update')->name('dailyMatch');
Опция 1:
Перенаправление на именованный маршрут
Ваш клинок, на котором находится форма:
<form method="POST" action="/your/route">
@csrf
<select name="dailyMatch" id="dailyMatch" onchange="this.form.submit()">
<option value="pop">Pop</option>
<option value="classical">Classical</option>
</select>
</form>
@if( $book == true )
@include('layouts.divAPIclass')
@endif
Ваш MatchController:
public function update(Request $request)
{
$dailyMatch = $request->dailyMatch;
// process your data
...
// then redirect back with your boolean value
return redirect()->route('routenamehere', [
'book' => true,
'dailyMatch' => $dailyMatch
]);
}
Вариант № 2:
Воспользуйтесь помощником laravels back ()
<form method="POST" action="/your/route">
@csrf
<select name="dailyMatch" id="dailyMatch" onchange="this.form.submit()">
<option value="pop">Pop</option>
<option value="classical">Classical</option>
</select>
</form>
@if( session('dailyMatchUpdated') )
@include('layouts.divAPIclass')
@endif
Ваш MatchController:
public function update(Request $request)
{
$dailyMatch = $request->dailyMatch;
// Process your dailyMatch data
...
// Then use the back() function
return back()->with('dailyMatchUpdated', 'You selected a new match');
}
Вариант № 3:
Перенаправление на действие контроллера
Если вы переходите на исходную страницу формы с помощью действия контроллера, я бы предложил пойти по этому пути
<form method="POST" action="/your/route">
@csrf
<select name="dailyMatch" id="dailyMatch" onchange="this.form.submit()">
<option value="pop">Pop</option>
<option value="classical">Classical</option>
</select>
</form>
@if( $book == true )
@include('layouts.divAPIclass')
@endif
Ваш MatchController:
public function update(Request $request)
{
$dailyMatch = $request->dailymatch;
// Process your data
...
// Then redirect to the original controller action and pass it the book value
return redirect()->action('SomeController@someFunction', ['book' => true]);
}
Надеюсь, это поможет вам!
Других решений пока нет …