Autor Zpráva
maks
Profil
Ahoj,

mohl bych se zeptat, jak by se dala řešit následující věc? Mám tabulkový výpis v administraci, místo vypsaných hodnot mám textové inputy, abych mohl editovat některé položky rovnou a nemusel přecházet do detailu.

Výpis vypadá následovně:
ID  |   NAME     |   PRICE       		|	ACTION
1   |   name 1   |   1000 (t. input)    |   submit
2   |   name 2   |    500 (t. input)    |   submit
3   |   name 3   |    200 {t. input}    |   submit
5   |   name 4   |   2000 (t. input)    |   submit

SUBMIT ALL


O co jde. Pokud změním cenu u jednoho řádku, potvrdím ji submitem na řádku, který updatuje jen to jedno konkrétní ID. Pokud jich budu chtít upravit více současně, upravím hodnotu v inputech a dám dole SUBMIT ALL, přepíší se všechny položky v DB. Napadlo mě řešit to místo submitu na každém řádku odkazem, který by formulář odesílal javascriptově, což nevím, jestli by šlo a pak by se mi to nelíbilo - závislost na zapnutém js, ...

Moje dotazy jsou asi zřejmé:
- jak udělat odesílání na řádcích? Zkoušel jsem zanořený formulář, ale to je blbost - odesílají se data z řádků, ale tím spodní hromadných submitem se odešlou jen data, která nejsou zanořena v jiném formuláři.
- jde nějak (třeba JS) průběžně ukládat, které hodnoty jsem změnil a updatovat pak jen ty? Když je třeba 1000 položek a změním jich 10, je zbytečné updatovat všechny (navíc těch editovatelných položek bude na každém řádku více - asi 5 - toto je jen zjednodušený příklad).


Děkuji.
tiso
Profil
maks: odosielanie po riadkoch sa dá spraviť pomocou viacerých submit inputov: echo '<input type="submit" name="submit'.$id.'" value="submit">';, ale vôbec to nemusíš robiť takto, stačí ti jedno odosielacie tlačítko a ukladať len tie riadky, ktoré sú zmenené.
maks
Profil
tiso:
ukladať len tie riadky, ktoré sú zmenené.
to je ten poslední řádek mého prvního příspěvku, můžeš mě prosím blíže navést, jak zjistím, který řádek byl změněný (nebo ještě lépe, která z polí v řádcích byla změněna)? V jednom změním třeba cenu, ve druhém jméno, ve třetím obojí... Ale klidně po řádcích, to by mohlo stačit.

Jinak nápad se samostnými inputy je dobrý, to mě nenapadlo.

Děkuji.
tiso
Profil
maks: teba nemusí zaujímať ktorý stĺpec sa zmenil, uložíš všetky čo sa mohli zmeniť.
Zmenené riadky zistíš tak, že si vytiahneš záznamy z databázy a porovnáš ich s údajmi z formulára, môžeš si vytvoriť hash riadku a porovnávať ten.
maks
Profil
tiso:
eba nemusí zaujímať ktorý stĺpec sa zmenil, uložíš všetky čo sa mohli zmeniť.
ok, tohle chápu. Napadlo mě jen, že bych nemusel ukldat ty nezměněné, ale na tom asi nesejde.

Zmenené riadky zistíš tak, že si vytiahneš záznamy z databázy a porovnáš ich s údajmi z formulára, môžeš si vytvoriť hash riadku a porovnávať ten.
tohle nějak moc nechápu. Mám data, ty vypíšu do tabulky. Změním a při odeslání ještě před SQL dotazem tyhle data porovnám s těmi, která odesílám, jestli se liší?

môžeš si vytvoriť hash riadku a porovnávať ten.
hash z čeho? Myslíš vzít všech třeba 5 hodnot, které budou měnitelné a udělat z jejich hodnot hash? Možná špatně chápu, cos tím myslel... Nikdy jsem se s ničím podobným nesetkal.
tiso
Profil
maks:
- naozaj na tom až tak nezáleží,
- áno
- presne tak. Nemusíš robiť hash, stačí keď pospájaš obsah tých meniteľných položiek do jedného stringu a porovnáš ten.
maks
Profil
tiso:
ad1) chtěl jsem šetřit čas, ale je to furt jeden dotaz a asi nezáleží na tom, jestli updatuju jeden nebo více sloupců.

Jinak to porovnávání původního a současného stavu je dobrý nápad, za ten ještě jednou děkuji.

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:

0