У меня есть этот код, который должен управлять формой после отправки и установить для переменной $_SESSION
новое значение, которое пользователь выбирает из поля выбора. Проблема в том, что переменная сеанса по умолчанию не будет изменена, и если пользователь попытается выполнить поиск, он всегда будет получать те же результаты, даже если изменилась желаемая лига. Как я могу решить это? Примечание: session_start()
присутствует на странице индекса, которая содержит код, а также присутствует в файле класса, который управляет операциями с базой данных.
<?php
session_start();
require_once 'app/config.php';
require_once 'app/Autoloader.php';
$prediction = new Prediction(new DataManager($db));
$template = new TemplateLoader('app/templates/');
if(isset($_POST['search_matchday'])){
$matchday = filter_var($_POST['matchday'], FILTER_SANITIZE_NUMBER_INT);
$data = array(
'data'=> $prediction->searchMatchday($matchday, $_SESSION['competition']),
'date'=> new DateTime(),
'results'=> $prediction->randomResult(),
'logo'=> $prediction->competitionLogo($_SESSION['competition'])
);
echo $template->renderTemplate('home', $data);
}
if(isset($_POST['switch_competition'])){
$competitionName = $_POST['competition'];
$_SESSION['competition'] = $_POST['competition'];
$data = array(
'data'=> $prediction->switchCompetition($competitionName),
'date'=> new DateTime(),
'results'=> $prediction->randomResult(),
'logo'=> $prediction->competitionLogo($competitionName)
);
echo $template->renderTemplate('home', $data);
}
$data = array(
'data'=> $prediction->defaultCompetition(),
'results'=> $prediction->randomResult(),
'date'=> new DateTime(),
'logo'=> $prediction->competitionLogo('Serie A')
);
$_SESSION['competition'] = 'Serie A';
echo $template->renderTemplate('home', $data);
?>
HTML-форма
<form class="form-inline" method="POST" action="">
<div class="input-group">
<input type="text" class="form-control" name="matchday" id="input-matchday" placeholder="Cerca Giornata">
<div class="input-group-append">
<button type="submit" name="search_matchday" class="btn btn-link"><i class="fas fa-search"></i></button>
</div>
</div>
</form>