Как создать на странице кнопки и счетчик к ней на php+html
Хотел бы узнать, как можно создать кнопку, а рядом с ней выводить текст "Вы нажали на кнопку n раз".
<?php
$num = 0;
if(isset($_POST['but'])){
$num++;
echo'Вы нажали на кнопку '.$num.' раз';
}
?>
<form action="registration.php" method="post">
<input type = 'submit' value = 'Жми' name='but'>
</form>
Подскажите пожалуйста, может есть какая нибудь другая функция проверяющая, нажата ли кнопка и можно ли этот пример реализовать с помощью куки/рекурсии
<?php
$num=0;
setcookie('click', $_POST['but']);
if(isset($_COOKIE['click'])){
echo 'Вы нажали на кнопку '.$num.' раз';
$num++;
}
?>
<form action="registration.php" method="post">
<input type = 'submit' value = 'Жми' name='but'>
</form>
Вот попытка сделать тоже самое через куки, выводит только 0(из $num)
Ответы (1 шт):
Автор решения: nazarpunk
→ Ссылка
Зачем вам php для этих целей, если вы состояние не собираетесь на сервере хранить?
const $b = document.getElementById('b');
let value = parseInt(localStorage.getItem(`value`) ?? 0);
$b.innerText = `Нажвтий: ${value}`;
$b.addEventListener(`click`, () => {
value++;
$b.innerText = `Нажвтий: ${value}`;
});
<button id="b"></button>
Если нужно решение на чистом php, то можно сделать так:
<?php
declare(strict_types=1);
$num = filter_input(INPUT_COOKIE, 'clicked', FILTER_VALIDATE_INT) ?? 0;
if (!is_int($num)) $num = 0;
if (array_key_exists('but', $_POST)) {
$num++;
setcookie('click', $num);
}
echo 'Вы нажали на кнопку ' . $num . ' раз';
$num++;
?>
<form action="registration.php" method="post">
<input type='submit' value='Жми' name='but'>
</form>