Rozdílné chování ajax požadavku na serveru a na localhostu
- Oli
- Člen | 1215
Ahoj,
napsal jsem takový pokus o doplněk na zobrazení a editaci markerů na mapě,
který mě funguje tak jak má na localhostu. Na serveru funguje tak jak má až
do přesměrování. Pokud jdu na stránku a přidám marker, můžu s ním
hýbat a vymazat ho. Vše se do db uloží.
Pokud vložím marker (a treba presunu) a refreshnu, tak po refreshi už mě ten marker neukládá do databáze. Nemužu tedy editovat marker z databáze (posouvat a mazat). Pošle to správná data v POST, to jsem kontroloval, ale neuloží do db. Přitom na localhostu to funguje.
Doplněk
(se zdrojovými
soubory). Nechápu čím to je. Ve firebugu vidím, že se požadavek
odešle a server vrátí 200 OK
. V databázi se ale nic neuloží.
Přitom to zpracovává ta samá metoda, takže z mého pohledu je to ta samá
situace, ale očividně není. Přitom nově vložený marker to uloží a
můžu s ním pohybovat a mazat ho (i z databáze), po refreshi se ale
přidá k těm „mrtvím“ markerům.
Má někdo nějaký nápad, proč se to chová na serveru a na localhostu
jinak?
Díky moc za jakoukoli pomoc!
- Michal Vyšinský
- Člen | 608
Ahoj, díval jsem se na ten kód a jediné co mě napadá je, že
neprojde podmínka WHERE při movePosition. Nebylo by lepší posílat ID
markeru namísto souřadnic? Jak má uložen ty souřadnice v databázi
(datový typ). Máš tam ten údaj uložený celý?
Tak jsem se podíval znovu a osvěžil si práci s Nette\Database. Asi máš špatně napsaný ten where (ono ti to ani nemaže):
Tento [https://github.com/…pository.php#…] zkus změnit na:
$this->_db->table($this->table)->where(array(
$this->columns['lat'] => $old['lat'],
$this->columns['lng'] => $old['lng'],
))->update($new);
A to samé u delete
Editoval CherryBoss (29. 7. 2013 11:38)
- Oli
- Člen | 1215
Díky moc za radu, nicméně nepomohlo to. :-)
Myslím, že v tom dotazu to je v pohodě. Na localhostu to funguje a funguje to i když vložíš marker (uložení do db) a přesuneš (nové uložení do db). Když refreshneš, tak už to fungovat přestane. To samé s mazáním.
Tohle je pro mě fakt záhada :-/ Napadlo mě, jestli to třeba nemůže být verzí MySQL, ale to je asi blbost, když to funguje všechno (vkldádání, editace, mazání) před refreshem…
ad přeškrknutý text: Asi by to šlo posílat id, nicméně nikde s ním neoperuju. Natáhnu z db souřadnice (případně další informace) a předám google js, který vykreslí markery. Ty souřadnice se musejí schodovat, protože na jejich základě jsou ty markery vykresleny.
V db ukládám souřadnice jako double.