html — заставляет макет лезвия появляться только тогда, когда пользователи выбирают из выпадающего списка, используя PHP Laravel

Примечание: я использую 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";
}

?>

Я знаю, что это много, но если у вас есть какие-либо вопросы, просто задавайте. Если у вас есть более эффективные способы сделать это, пожалуйста, предложите. Спасибо

0

Решение

У вас есть варианты для этого. Я не знаю, как выглядит ваш файл маршрутов, но я предполагаю, что в вашем файле веб-маршрутов есть следующее.

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]);

}

Надеюсь, это поможет вам!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector