Autor Zpráva
gardener
Profil
Zdravím

Mám jeden problém, skriptem vygnerovaná tabulka se záznamy z DB a ke každému řádku je přiřazen i checkbox.

Potřeboval bych radu, jak vyřešit mazání jenom vybraných záznamů.

Zatím mě napadly 2 varianty ale nevím, která by byla vhodnější.
1)Buď umístit metodu pro odstranění vybraných záznamů do skriptu pro výpis a třeba pomocí logické proměnné ověřovat, zda nebyl odeslán požadavek na smazání
2)Nebo do samostatného skriptu.

Problém je ještě v tom, že nevím, jak přesně docílit toho abych zjistil která ple byla zatržená...asi bych použil metodu GET[] ale to bych to zase vše musel mít jako jeden form, nebo se pletu?

Díky za každou radu.
Mastodont
Profil
Všem checkboxům je třeba přiřadit stejný name, value rozlišit třeba dle ID záznamu. V odeslaném formuláři pak budeš mít pole obsahující jen zaškrtnuté check boxy.

A rozhodně posílat přes POST, ne GET.
gardener
Profil
Díky , takže by bylo lepší použít metodu přímo v tom skriptu?A jak to vyřeším, pokud se nejdná o formulář?
Prostě bych si dal odkaz s názvem Smaž vybrané na skript smazat_vybrane.php, ale tam přeci musím projet znovu celý ten výpis, abych zjistil, co vrací checked...
Mastodont
Profil
Tyhle věcí se ale dělají jako formulář, máš nějaký důvod, proč bys to chtěl dělat jinak? Právě formulář ti zajistí, že se odešle všechno, co je třeba vědět pro vlastní smazání .. skript smazat_vybrane.php bude prostě zadán jako action formuláře.
gardener
Profil
Tp souhlasím ale jak to konstrukčně udělat, moje situace, po loginu jsem hned přesměrován na paginu, kde se automaticky provede výpis z DB do tabulky, třeba dole pod tím, kdybych udělal ten form, tak v něm ale už neověřím, zda jsou zaškrntuté ty pole, jelikož by to nebyla součást toho formu ale kus HTML před formem.
tiso
Profil
gardener - tá tabuľka s výpisom môže byť súčasť formulára:
<form ...>
<table>
...
<tr><td><input type="checkbox"...>...
...
</table>
<input type="submit"...>
</form>
xxyy
Profil *
cyklem pomocí foreeach..
xxyy
Profil *
[#7]
foreach..
Joker
Profil
gardener
Problém je ještě v tom, že nevím, jak přesně docílit toho abych zjistil která ple byla zatržená
Dal bych to jako jeden velký formulář a políčka (minimálně ty checkboxy) pojmenoval polem.
Tj. pro každý záznam z databáze:
echo('<input type="checkbox" name="pole['.$id.']">');

Tim vzniknou checkboxy se jmény řeba pole[1], pole[2], pole[5],...
Při odeslání formuláře se odesílají checkboxy jen ty, které jsou zaškrtnuté. Takže ve výsledku pak v $_POST["pole"] dostanete pole, jehož klíče jsou IDčka, která se mají smazat (a hodnota je řetězec "on", to se posílá u zaškrtnutého checkboxu).
gardener
Profil
TOsouhlasím, ale jak to konstrukčně udělat, moje situace, po loginu jsem hned přesměrován na paginu, kde se automaticky provede výpis z DB do tabulky, třeba dole pod tím, kdybych udělal ten form, tak v něm ale už neověřím, zda jsou zaškrntuté ty pole, jelikož by to nebyla součást toho formu ale kus HTML před formem.
gardener
Profil
Joker--->Díky, to je ono, nyní to snad již zkompletuji..

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: