Как распечатать значок галочки на отправленной форме, используя PHP? - PullRequest
0 голосов
/ 25 ноября 2018

Этот код ниже выведет <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хочу распечатать <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 ##
  } 
}

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

1 Ответ

0 голосов
/ 26 ноября 2018

Вы проверяете $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> 
...