Rozdílné chování ajax požadavku na serveru a na localhostu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Oli
Člen | 1215
+
0
-

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!

Oli
Člen | 1215
+
0
-

Omlouvám se, za zbytečné oživení vlákna. Jen kdyby někdo věděl a přehlédl vlákno, tak by mě to dost pomohlo :-) Nikdy jste se s něčím podobným nesetkali?

Michal Vyšinský
Člen | 608
+
0
-

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
+
0
-

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.