Checkboxy – edycja i zapisywanie w mysql
W dzisiejszym wpisie jedna z najbardziej podstawowych operacji. Prawdopodobnie trafiłeś tutaj, ponieważ nie jesteś pewien jak zrobić zapisywanie i edycję pól typu checkbox tak, żeby było z tym najmniej problemów. Pierwsza sprawa: wartość pola checkbox może przyjmować dowolną postać, ale dla uproszczenia przyjmiemy, że będzie to 1 (value=”1″). W końcu dość dobrze opisuje to fakt zaznaczenia pola, a dodatkowo pozwala w prosty sposób wykonać operacje zapisu i edycji. Po wysłaniu formularza w $_POST (przy method=”post”) znajdą się dane wpisane w formularzu oraz ewentualne pola checkbox. Ewentualne, ponieważ przeglądarki pomijają te pola jeśli nie zostały one zaznaczone. Dzięki wybranej wcześniej jedynce możemy wykonać polecenie:
$_POST['nazwa_checkboxa'] += 0;
Dzięki temu rozwiązaniu zawsze będziemy wiedzieli, które pola zostały wybrane, oraz nie będzie potrzebne zbytnie rozbudowywanie zapytania aktualizującego dane w bazie.
Pozostało już tylko edytowanie w formularzu:
wersja php
echo '<input type="checkbox" name="nazwa_checkboxa" value="1"' ; if ($form['nazwa_checkboxa'] == 1) echo 'checked="checked"' ; echo '/>' ;
wersja smarty
<input type="checkbox" name="nazwa_checkboxa" value="1" {if $form.nazwa_checkboxa eq 1}checked="checked"{/if} />
a co sądzisz o takim sposobie
dla smarty oczywiscie dla większej ilości w tablicy:
formularz blokuje chyba kody, wpisałem przyklad jednak nie został on załadowany
bez ostrych nawiasów powinno przepuścić