php odczyt stanu chceckbox z każdego wiersza tabeli

php odczyt stanu chceckbox z każdego wiersza tabeli
misch
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Witam
Mój problem nie jest skomplikowany tzn. wyświetlam przypakowy wycinek tabeli z bazy (np. MySQL) produkuje go na stronkę i przy każdym wierszu dodatkowo produkuję checkbox. Pytanie jak odczytać, które checkboxy zostały zaznaczone i przyporządkować je do określonych wierszy w tabeli, ponieważ mają one modyfikować pole boolean danego wiersza tabeli. Pomyślałem że może w nazwie checkbox umieścić ID wiersza tabeli, ale z drugiej strony skąd będę wiedział jakie akurat nazwy checkboxów na stronce się znajdują.

Byłbym wdzięczny za jakiś przykładowy kod, który odczytuje wartości checkboxów na stronce i w zależności od ich zaznaczenia modyfikuje wartość boolean pola - odpowiednika wiersza w tabeli. Chodzi o to żeby zastosować odpowiednią pętle, która odczytuje wartość checboxa i modyfikuje wartość pola w tabeli.

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
<input type=checkbox name='IDs[]' value='id_z_bazy'>
<?php
  print_r($_GET['IDs']);
?>

Pisane z palca, ale idea jest taka. Jezeli zaznaczysz checkboxa to id bedzie w tablicy $_GET['IDs']. Czyli mozesz zrobic sobie

Kopiuj

$id_zaznaczone = implode($_GET['IDs'], ",");
... update tabela set boolean=true where id in ($id_zaznaczone);
... update tabela se boolean=false where id not in($id_zaznaczone);
tomkiewicz
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1193
0

tak się robi, ale skoro pytasz "skąd mam wiedzieć", to przypomnę o istnieniu superglobalnej $_POST, którą można traktować jako zwykłą tablicę :>

misch
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Teraz już rozumiem, tok myślenia miałem z aplikacji desktopowych, a więc mysłałem że jest zmienna, która określa liczbę komponentów na stronie i w pętli sobie będę badał stan zanaczenia każdego z nich o ile jest on typu checkbox, a tu okazuje się, że zasada jest zupełnie inna, gdyż zaznaczenia przekazywane są w taki sposób że do zmiennej odbierającej POST lub GET przekazywane są po prostu nazwy zaznaczonych checkboxów jeśli są zaznaczone i trzeba tą zmienną potraktować jako tablicę w przeciwnym razie uzyskamy w zmiennej uzyskamy tylko nazwę ostatniego zaznaczonego elementu checkbox.

No dobra tylko teraz co mam zrobić jeżeli chce aby checkbox oddawał stan pola boolean tabeli, próbowałem w <input typ="checkbox"> dać [checked], ale ta opcja nie działa albo źle ją deklaruje bo checkbox jest odznaczony. Wdzięczny byłbym za jakiś krótki kodzik odzwierciedlający stan checkboxa w zależności od bola boolean tabeli (właściwie tiny - MySQL).

RO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 162
0
Kopiuj
if ($wartosc==1){$checked="checked=\"checked\"";}
else {$checked="";}
echo "<input type=\"checkbox\" value=\"1\" name=\"jakis_id\" $checked />";

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.