Autor | Zpráva | ||
---|---|---|---|
houbeless Profil |
Zdravím,
mám funkční dialog s formulářem, u kterého chci k tlačítku přiřadit ajax .post, aby se mi data přenášela do funkce napozadí a nedošlo po provedení fce k refreshi stránky. Zatím jsem to testoval jen v základním provedení tzn. nedynamické hodnoty jen pro test a po kliknutí se mi okno sice hezky uzavře ale do volané funkce se nepředá nic. Koukám na to dobu a fakt nevím, poradil by mi prosím někdo ? :) $(document).ready(function() { var $loading = $('<img src="loader.gif" alt="loading" class="loading">'); var url = 'modules.php?name=neco&op=edit_save'; var bin = { yes: 1, no: 0 }; $('#form a').each(function() { var $dialog = $('<div></div>').append($loading.clone()); var $link = $(this).one('click', function() { $dialog.load($link.attr('href')).dialog({ title: $link.attr('title'), modal: false, buttons: { "Uložit záznam": function() { $.post(url, { "test_a": bin.yes, "test_b": bin.no }); $(this).dialog("close");} } }); $link.click(function() { $dialog.dialog('open'); return false; }); return false; }); }); }); díky moc |
||
okolojsoucí Profil |
#2 · Zasláno: 7. 4. 2014, 06:31:29
Zkoušel jsi se podívat do konzole zda-li ti něco nevypsala?
|
||
_es Profil |
#3 · Zasláno: 7. 4. 2014, 08:17:07
houbeless:
Na prístup k vráteným dátam potrebuješ nejakú funkciu, ktorú predáš ako argument metóde jQuery.post: api.jquery.com/jQuery.post. |
||
houbeless Profil |
[#2] okolojsoucí
jo pardon, zapomněl jsem připsat, že jsem to i testoval v chromním nástrojem pro vývojáře a žádnou chybu mi to nenapsalo..ani syntaxe ani jQuery.. Cílová funce je předána getem v url (edit_save) kde je jen nějaké print_r($_POST) nebo předané do session abych ho zachytil.. Mě $.post běžně funguje, nemám s předáním hodnot do jiné fce problém, ale nevím proč mi to nefunguje nabindované na button dialogu, proto v rámci testu předávám jen hodnoty 1,0 z bin pole. A ty mi prostě do té funkce nejdou, nerozumim co je špatně.. Dokonce není ani po cestě v php nějaké header, abych refreshoval a vymáznul POST. Jde jen o nahrazení klasického formuláře, který se místo na stráce zobrazuje v jQ dialogu.. |
||
_es Profil |
houbeless:
„Cílová funce je předána getem v url (edit_save) kde je jen nějaké print_r($_POST)“ Nejakou funkciou bola myslená nejaká funkcia v JavaScripte. V 13. riadku je odoslaný POST dotaz, no prehliadač odpoveď servera naň nijako nespracuje. Na to slúži práve tá funkcia, ktorú tam nikde nemáš. Alebo ťa odpoveď servera nezaujíma? Zistil si si, či je dotaz vôbec odoslaný? Rátaš s tým, že chvíľu trvá, než server dotaz spracuje? Nemáš chybu v PHP skripte? „ $('#form a') “
Prečo dávaš do formulára odkazy? Prečo by mali mať tie odkazy niečo spoločné s formulárom? Smerujú tie odkazy na nejaké adresy? |
||
houbeless Profil |
#6 · Zasláno: 7. 4. 2014, 16:34:03
$('#form a')“ je id tagu:
<span id=\"form\"><a href=\"....
Nevim proč bych to řešil v js když mě to jak jsem psal funguje jinde v php. V tomto případě je funkce, kterou volám na serveru, viz ta url. "Alebo ťa odpoveď servera nezaujíma?" - to nechápu Ale zajímalo by mě co myslíš tim jak zjistit, že je dotaz odeslaný, myslíš z logu apache ? |
||
_es Profil |
houbeless:
Máš to celé nejako chaotické, takže sa ťažko zisťuje, v čom robíš chybu, jeden príkaz robí veľa vecí, aby sa niekto v tých zátvorkách vyznal... Overili si si, že metódy jQuery, čo si použil, fungujú tak, ako chceš? Možno je príčina v Časté potíže, zajímavosti a poučné debaty » Uchování hodnot proměnných v anonymních funkcích — lexikální uzávěry (premenné $link a $dialog ).
„"Alebo ťa odpoveď servera nezaujíma?" - to nechápu“ Nikde (v JS) nepracuješ s vrátenými dátami z modules.php . Ten PHP skript nemá žiaden výstup?
„co myslíš tim jak zjistit, že je dotaz odeslaný“ Že si to zistíš nejakými vývojárskymi nástrojmi prehliadača, alebo z nejakej analýzy sieťových dotazov. |
||
houbeless Profil |
#8 · Zasláno: 7. 4. 2014, 19:16:43
Neni to chaotické, dialog i post běžně fungují, akorát se zdá, že toto řešení dialogu znemožňuje kombinovanou funkci s post..
|
||
_es Profil |
houbeless [#8]:
Nie je dôvod, aby nefungovali dva za sebou idúce, navzájom sa neovplyvňujúce, príkazy. Chyba bude inde. Funguje ti správne PHP skript modules.php ?
A z [#1] „ale do volané funkce se nepředá nic.“: Ako vlastne zisťuješ, či sa niečo „predá“ alebo „nepredá“, keď odpoveď zo servera zo skriptu modules.php v prehliadači nijako nenačítaš?
|
||
houbeless Profil |
#10 · Zasláno: 7. 4. 2014, 19:46:41
session_start(); $_SESSION['test'] = $_POST; ve který si to pak můžu vypsat: print_r($_SESSION); die(); zkoušel jsem to i s $.get a do sejšny se mi předá jen get=url ale nic navíc, proto si myslím, že to z jQ dialogu vůbec neodejde.. |
||
_es Profil |
#11 · Zasláno: 7. 4. 2014, 20:00:10
houbeless:
> ve který si to pak můžu vypsat: > print_r($_SESSION); die(); Čo z toho, že si to „vypíšeš“, keď to „vypísané“ nikde nepoužívaš? A celý ten kód z [#1] je kde? Nedal si ho do modules.php ?
|
||
houbeless Profil |
#12 · Zasláno: 7. 4. 2014, 20:11:02
:) ježiš, jak nepoužíváš? k čemu by mi to bylo, v rámci testu potřebuju vidět že se mi ty hodnoty předaj, s omáčkou ted nebudu ztrácet čas, když ani nevim, že s to předá ...
pro test mi to bohatě stačí abych viděl že to tam šlo, pak už je snad jedno co s těma hodnotama dělám, ne? :D ten js kod, je v samostatnym js skriptu, kterej se zavádí v headu stránky: <script type="text/javascript" src="includes/js/dialog/dialog.js"></script> |
||
_es Profil |
houbeless:
„:) ježiš, jak nepoužíváš?“ No a kde a kedy teda zisťuješ, čo sa do PHP skriptu modules.php v 13. riadku v [#1] odoslalo? Tvrdíš, že vraj ten PHP skript niečo „vypisuje“, ale kam? Lebo do prehliadača na stránke, kde je kód v [#1] sa to „vypísané“ nedostane. Možno by si mal dodať „živú“ukážku, aby bolo jasnejšie, kde je problém.
|
||
houbeless Profil |
#14 · Zasláno: 7. 4. 2014, 20:54:20
OK, zkusim připravit ukázku pro nějaký ladící nastroj, možná to i sám uvidim, ale to ted nemám, na to potřebuju čas..díky
|
||
Časová prodleva: 10 let
|
0