Zdravím Vás,
narazil jsem na problém, který buď neumím řešit a nebo stále dokola přehlížím chybu kterou nejsem schopen objevit...
Na web stránky tahám data z tabulky "potraviny", zobrazování tabulky na stránce "index.php" je v pohodě. Problém nastává s administrací na stránce "admin.php".
Totiž na stránce Admin.php je <form> do které se načtou práve data z tabulky (do jednotlivých políček <input> a na konci každého řádku je tlačítko "OK", které následně nahraje změněné data zpět do DB..
Obrázek indexu:
index.jpg
Obrázek administrace:
admin.jpg
V administraci je tedy spoustu <input> tagů, ve kterých lze změnit obsah pole a následným stiskem "OK" tyto změny uložit do DB...
Problém č.1 = Checkbox
V dřívější verzi jsem první dva sloupečky řešil pomocí čísel 0/1 (a políčko bylo <input type="text">), nyní jsem to chtěl nahradit checkboxem.
Jaký má být správný typ pole v mysql ? (BIT nebo TINYINT ?)
- pokud BIT, pak ale při odesílání FORM se mi odesílá hodnota "on" namísto čísla 0/1
- pokud TINYINT, pak mi zlobí zobrazování již zatržených políček, případně jejich nové odesílání (např pole je zatržené (checked), já změním hodnotu např u názvu zboží, a po odeslání je mi celý řádek označí jako kdybych jej NEMĚL zatržený...)
Problém č.2 = Combobox
U některých políček nejde hodnota přepisovat, ale musíte si vybrat z přednastaveného (prostě combobox), jak mám ale udělat, aby když se natáhne databáze, tak aby se v Combáči vybral (selected) ten správný údaj
Příklad:
- ve sloupci DPH jsou na výběr 3 položky (id:1 = 15%; id:2 = 21%; id:3 = 0%)
No a některé zboží, může mít dph 21%, ale jak mám při načtení DB říct, že zrovna tenhle řádek bude mít vybráno (selected) druhou "option: 21%"?
Mimochodem zkoušel jsem toto, ale nefunguje to jak by mělo:
Před výpis z $sql jsem umístil
A do každé z option jsem umístil $dph1, 2 a nebo 3Kód:if ($zaznam[dph.id] == 1) $dph1 = "selected"; elseif ($zaznam[dph.id] == 2) $dph2 = "selected"; elseif ($zaznam[dph.id] == 3) $dph3 = "selected"; else $dph0 = "";
Bohužel toto nefunguje dobře. Zobrazí se normálně řádky s 15%, a pokud to narazí na první řádek s 21%, tak pak všechny následující řádky mají "selected" jak u 15%, tak u 21%.Kód:<select name="admindph"> <OPTION value="15%" "'.$dph1.'"></option> <OPTION value="21%" "'.$dph2.'"></option> <OPTION value="0%" "'.$dph3.'"></option> </select>