PHP: Natychmiastowa reakcja na checkbox

Dla rozpoczynających przygodę z programowaniem i językiem PHP.
Awatar użytkownika
Tygrysek
Posty: 1
Rejestracja: 14 kwie 2021, 9:07

PHP: Natychmiastowa reakcja na checkbox

Post autor: Tygrysek » 14 kwie 2021, 9:36

Jestem nowy na forum, witam wszystkich! Jestem doświadczonym programistą, jednak do tej pory tworzyłem głównie aplikacje okienkowe (exe) a PHP to zupełnie nowe wyzwanie :D. Mimo to idę do przodu jak burza! Jednego problemu jednak nie mogę przeskoczyć:
Mam już działający skrypt wyświetlający dane z bazy SQL, wymyśliłem sobie możliwość filtrowania tych danych, umieściłem więc chceckbox "pokaż tylko ...". Chciałbym żeby zaznaczenie/odznaczenie tego chceckbox-a spowodowało przeładowanie strony i ponowne wykonanie skryptu z uwzględnieniem stanu czeckbox-a. Owszem, mógłbym dać przycisk "Odśwież" ale jednak chcę aby samo kliknięcie w checkbox wywołało reakcję. Czy da się to zrobić na jednym pliku PHP i bez przekazywania parametrów w URL (sesja/ciasteczka)?. Tak wygląda moja uproszczona/testowa wersja skryptu:

Kod: Zaznacz cały

<?php
session_start();
$d = new DateTime('NOW');
echo $d->format('Y-m-d\TH:i:s.u').'<br/>';
if(isset($_POST['test']))
{
	echo '<input type="checkbox" onchange="window.location.reload();" id="test" name="test" checked><label>Testowy Checkbox</label><br/>';
	echo 'Checkbox zaznaczony';
}
else
{
	echo '<input type="checkbox" onchange="window.location.reload();" id="test" name="test"><label>Testowy Checkbox</label><br/>';
	echo 'Checkbox odznaczony';
}
?>


Po zaznaczeniu/odznaczeniu checkboxa ma się pojawić odpowiednio napis "Checkbox zaznaczony" lub "Checkbox odznaczony". Owszem, kliknięcie w checkbox powoduje przeładowanie strony ale nie zostaje zapamiętany stan checkbox-a. Do przeładowania strony użyłem Javascript i chyba tu jest problem, bo takie przeładowanie strony nie zapamiętuje sesji?

Awatar użytkownika
siodmy
Posty: 6
Rejestracja: 15 lis 2020, 15:56

Re: PHP: Natychmiastowa reakcja na checkbox

Post autor: siodmy » 27 kwie 2021, 21:09

checked=checked w tym checkboxie

ODPOWIEDZ