Autor Zpráva
slovakCZ
Profil
Ukazka z FTP smazana, odkaz tedy jiz nefunguje. Dekuji za pochopeni

Dobry den,
pro zacatek podotykam, ze nejlepsi bude kdyz si nyni otevrete ukazku (odkaz dole) a az pote budete cist. Je to pro lepsi pochopeni dane situace.

resim zde trosku problem s aktualizaci dat v tabulce pomoci jQuery. Melo by se kliknout na dany radek tabulky a ihned by se mela objevit textarea s upravou aktualniho textu. Po kliknuti na tlacitko ulozit by se data mela vlozit do databaze (tedy aktualizovat).
Vse funguje krasne, ale problem nastava pri update dat. v databazi mam texty ulozene pomoci jedinecneho identifikatoru ID. Ovsem netusim, jak predat tento identifikator aby se mi spravne upravila data. Nyni je dotaz provaden takto:
mysql_query("UPDATE menu SET title='".$_POST['update_value']."' WHERE title='".$_POST['original_html']."' LIMIT 1");

Takto se updatuje dany zaznam podle nazvu.. ovsem kdzy mam v tabulce 2 stejne zaznamy a chci upravit ten druhy tak se mi upravi samozrejme ten 1. (ktery ma mensi ID). =o/ takze potrebuji dotaz resit nejak takto:
mysql_query("UPDATE menu SET title='".$_POST['update_value']."' WHERE id='".$_POST['id']."' LIMIT 1");

ale jak rikam, nejde mi predat prave to ID.

Celou ukazku tedy nahravam zde:
http://test.tomasnikl.info/administrace/index.php?page=sprava-menu
editovatelny je ten sloupec Titulek. Staci kliknout nekde do tabulky v sloupci titulek...

Pro tuto upravu je pouzit tento kod:
http://code.google.com/p/jquery-in-place-editor/


Vsimete si tedy, ze kdyz date stejny titulek nejake polozce s ID napr 3 a s ID napr 5 a pote text zmenite u polozky 5 tak se to sice projevi, ale po refreshnuti stranky se ukaze, ze ve skutecnosti se aktualizovala prave polozka cislo 3 (tedy ta s mensim ID).

Po aktualizaci na tomto hostinug se vklada reklama do inputu.. proto vzdy po aktualizaci je dobre zmacknout F5.. toto bohuzel neovlivnim.

Nemate tedy nekdo nejaky napad, jak predavat i to ID abych spravne mohl provest sql dotaz?

Dekuji za odpoved.



ps. na testu funguje pouze tato stranka :)...
ah01
Profil
slovakCZ:
Autor toho puginu moc na rozšiřitelnost nemyslel. Máš v v zásadě dně možnosti:

1) Doplnit do elementů pro editaci id:
<td class="editme1" id="name-id-3">pavel</td> 

jako POST data pak dostaneš element_id což bude v tomto případě name-id-3 a s tím si v PHP už poradíš.

2) Napsat si vlastní callback funkci (což je vlastně jediné, jak můžeš modifikovat chování toho pluginu). Pak si ale musíš napsat celou AJAX komunikaci se serverem sám.


PS: doufám, že to volání mysql_query je zde jen pro ukázku, a že něco tak odporného se v tvých kódech nevyskytuje.
slovakCZ
Profil
dekuji za radu, ihned vyzkousim...

techto pluginu je na internetu celkem dost jak tak koukam.. tento se mi ovsem zdal nejjednoduzsi nez jsem narazil na tento problem :) snad to bude fungovat ;)

jinak mysql_query je opravdu jen pro ukazku.. zatim teprve testuju, takze se nezaobiram bezpecnosti apod. vse se ovsem doladi kdyz bude ten zaklad fungovat ;)

Dekuji za info, dam vedet zda to funguje spravne ;)


//edit:
opravdu funguje :) nepredpokladal jsem ze to bude tak snadny zasah..

Dekuji za radu a jdu pokracovat dal :o)
slovakCZ
Profil
aha :o) narazil jsem na dalsi problem.. dole je strankovani, kdyz se presunu na dalsi stranu, nebo si dam zobrazit 20 zaznamu tak ty zaznamy, ktere se zobrazi pozdeji jiz nejdou editovat :o) no nic, asi se mrknu po internetu po nejakem reseni ktere umi spravovat upravu i strankovani pomoci javascrptu v jednom =o/

tak jsem nakonec nasel toto:
http://www.datatables.net/examples/api/editable.html

ma to dokonce i vyhledavani :o) no vida :o) zkusim zakomponovat, snad to pujde ;)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0