оператор if — Как распечатать значок галочки на отправленной форме, используя PHP?

Этот код ниже распечатает <i class="far fa-star"></i> если rowCount == 0 и если > 0 распечатает <i class="fas fa-check"></i>после того, как пользователь отправит форму, он не сможет увидеть <i class="fas fa-check"></i> если они не обновляют страницу, после того, как пользователь отправляет форму, само обновление страницы происходит, и пользователю необходимо обновить еще раз, чтобы увидеть <i class="fas fa-check"></i>:

if ($rowCountFav == 0) {
$favIcon = '<i class="far fa-star"></i>';
}else{$favIcon = '<i class="fas fa-check"></i>';}

if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST["fav"])){
if ($rowCountFav == 0) {
$favorito = $conn->prepare("INSERT INTO `favorito` (user_id, nameItem) VALUES (:user_id, :nameItem)");
$favorito->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$favorito->bindParam(':nameItem', $nameItem, PDO::PARAM_STR);
$favorito->execute();
}
}
}
?>
<form action="" method="post" autocomplete="off">
<button class="btnSub btnA" type="submit" name="fav" />
Favorito <?= $favIcon;?>
</button> <span class="ml-1 mr-2">-</span>
</form>

Что я хочу: я хочу распечатать <i class="fas fa-check"></i> после того, как пользователь отправит форму.

Я попробовал это, но ничего не изменилось:

if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST["fav"])){
if ($rowCountFav == 0) {
$favorito = $conn->prepare("INSERT INTO `favorito` (user_id, nameItem) VALUES (:user_id, :nameItem)");
$favorito->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$favorito->bindParam(':nameItem', $nameItem, PDO::PARAM_STR);
$favorito->execute();
}else{$favIcon = '<i class="fas fa-check"></i>';} ## I just added this line ##
}
}

Может ли кто-нибудь помочь?

0

Решение

Ты проверяешь $rowCountFav перед обновлением. Решение простое, переключите проверку и запрос. Вам также необходимо обновить значение переменной после запроса:

if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST["fav"])){
if ($rowCountFav == 0) {
$favorito = $conn->prepare("INSERT INTO `favorito` (user_id, nameItem) VALUES (:user_id, :nameItem)");
$favorito->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$favorito->bindParam(':nameItem', $nameItem, PDO::PARAM_STR);
$favorito->execute();
$rowCountFav = 1;
}
}
}

if ($rowCountFav == 0) {
$favIcon = '<i class="far fa-star"></i>';
} else {
$favIcon = '<i class="fas fa-check"></i>';
}

?>
<form action="" method="post" autocomplete="off">
<button class="btnSub btnA" type="submit" name="fav" />
Favorito <?= $favIcon;?>
</button> <span class="ml-1 mr-2">-</span>
</form>
1

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

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

По вопросам рекламы [email protected]