Autor Zpráva
robbie
Profil *
Zdravím vás,
trápí mě jak uložit do databáze jednu z voleb Checkbox políčka ve formuláři, bud se blbě dívám, ale na webu jsem nic nenašel, tak zkouším zde. Co kde nastavit v Mysql databázi a co ve formuláři, aby se to ukládalo správně. Děkuji
RastyAmateur
Profil
robbie:
Snad se nepletu, ale chceckboxu můžeš nastavit value, takže mu tam můžeš nastavit cokoliv. Pokud chceš do databáze ukládat pouze ne/zaškrtnuto, asi by stačilo ukládat 1 a 0
Manny
Profil
Ale pozor, checkbox z formuláře vrací "on", když je zatržený nebo nic. Je potřeba to zpodmínkovat (já používám ternál) před uložením do db.
robbie
Profil *
RastyAmateur:
Takže name mam v checkboxu nechat všude stejné a dat tam ke každemu jinou value a do mysql dotazu to napsat nejak takhle, pokud bych měl Checkboxy se jmenem plysak, je to správně?

$sql = "
INSERT INTO 
    drazitele
    (
    jmeno,
    prijmeni,
    email,
    vyber,
    castka
    )
    VALUES
    (
    '$_POST[jmeno]',
    '$_POST[prijmeni]',
    '$_POST[email]',
    '$_POST[plysak]',
    '$_POST[castka]'
    )
";
Zechy
Profil
robbie:
Pokud máš těch checkboxů víc, tak by správně měli mít v HTML name plysak[], aby se odeslaly všechny zaškrtnuté checkboxy. V tom případě v $_POST["plysak"] bude pole obsahující value všech, které uživatele zaškrtl.

Tudíž do databáze budeš muset z toho udělat string, ale ještě líp to vyřešit nějakou samostatnou tabulkou výběr, která by měla referenci na dražitele.
Keeehi
Profil
Vkládat do databáze neošetřené vstupy je velmi nebezpečné.
Monkeys
Profil *
Neviem ako ostatny ale ake hodnota z toho checkboxu nie je niako zviazana s inou tabulkou
tak to jednoducho ukladam cez serialize, a pri vypise spatne cez unserialize.

Samozrejme checkbox name musi byt pole(array).

M.
Joker
Profil
Monkeys:
To ale znemožní práci s těmi hodnotami na úrovni databáze.
V podstatě se databázová vrstva úplně odstřihne od informace, že záznam obsahuje nějaké checkboxy a jaké jsou jejich hodnoty.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: