Přihlásit se

Vyřešeno Kde mám chybu?

30. říj 2015 15:18 #124249
Odpověď od Cony
Moderátor
Žádná magie se nekoná, je to úplně stejný výstup z php jako každý jiný, prostě echo.
Poděkovali: Ernst

30. říj 2015 17:40 - 30. říj 2015 17:41 #124253
Odpověď od Ernst
Joomla Expert
A V JS to přečtu get?
to už jsem někde studoval

30. říj 2015 17:56 #124255
Odpověď od Cony
Moderátor
get? get co? get čeho? :cheer:

Používáte-li AJAX tak ve funkci .done - viz dokumentace
Code:
jqXHR.done(function( data, textStatus, jqXHR ) {});
Poděkovali: Ernst

30. říj 2015 18:29 - 30. říj 2015 18:31 #124257
Odpověď od Ernst
Joomla Expert
Děkuji krásně, já Vás nemít...
Kdyby jste se neurazil, pozvu Vás aspoň na dobrou večeři :)

ale ještě si máknu, než to spolu s učením dodělám.
Vím, že je asi jednodušší napsat si vlastní modul, než to takhle nacpat do modulu jako vlastní obsah

30. říj 2015 23:18 - 30. říj 2015 23:30 #124263
Odpověď od Ernst
Joomla Expert
studuji, studuji, ale zatím nechápu.
Nešel by nějaký popis nebo příklad?

PS dotáhnout tenhle modul je už asi poslední věc kterou potřebuji

nevím jak napsat ten ajax, který zavolá PHP a to mi jen echem vrátí jednu proměnnou a ta se v .done načte do proměnný.
tedy jak napsat ajax asi vím, ale nevím jak v .done načíst proměnnou a takový příklad se mi zatím vygooglit nedaří

30. říj 2015 23:44 #124264
Odpověď od Cony
Moderátor
Code:
function formajax(form){ jQuery.ajax({ url: '/components/com_lovefactory/models/lmenu.php', data: jQuery(form).serialize() }).done(function(data){ console.log(data); }).fail(function(){ console.log('Odeslání selhalo'); }); }

31. říj 2015 00:19 - 31. říj 2015 00:22 #124265
Odpověď od Ernst
Joomla Expert
tohle vcelku chápu (mimo toho jQuery(form).serialize(), ale to jde napsat jinak,
já myslel, jak v .done přečtu data odeslaná z PHP

nebo jsou ty data, která pošlu jako echo z php v proměnné data?

31. říj 2015 02:07 #124267
Odpověď od Cony
Moderátor

ernst napsal: nebo jsou ty data, která pošlu jako echo z php v proměnné data?

data obsahují vše co vypíše php, např. pomocí echo
Poděkovali: Ernst

01. lis 2015 00:21 #124270
Odpověď od Ernst
Joomla Expert
tak testuji, ale asi to není tak jednoduché"
JS.
Code:
<form name="form"> <input type="checkbox" name="form4"/> <span style="color: #999999;">Skryj vzdálenost</span><br> <a href="javascript:formajax();"><img src="../images/tl_refresh_a.png" ></a> </form> <script> function formajax(form){ jQuery.ajax({ url: '/components/com_lovefactory/models/testleva.php', data: jQuery(form).serialize() }).done(function(data){ console.log(data); }).fail(function(){ console.log('Odeslání selhalo'); }); } </script>
php
Code:
<?php define( '_JEXEC', 1 ); if (stristr( $_SERVER['SERVER_SOFTWARE'], 'win32' )) { define( 'JPATH_BASE', realpath(dirname(__FILE__).'\..\..\..' )); } else define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../..' )); define( 'DS', DIRECTORY_SEPARATOR ); require_once ( JPATH_BASE.DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE.DS.'includes'.DS.'framework.php' ); $app = JFactory::getApplication('site'); $app->initialise(); jimport( 'joomla.user.user' ); jimport( 'joomla.user.helper' ); jimport ("joomla.log.log "); echo("ahoj"); ?>

a do console logu to žádné ahoj nevypíše. Kde blbě uvažuji?

01. lis 2015 01:27 #124272
Odpověď od Cony
Moderátor
Nejspíš se Vám dotaz ani neodešle, funkci máte definovanou function formajax(form), ale voláte jí bez uvedení parametru form.

Zkuste
Code:
<a href="javascript:formajax(this.form);"><img src="../images/tl_refresh_a.png" ></a>
Nejsem si s tím ale stoprocentně jistý, this.form funguje určitě u input elementů, u odkazu možná ne, nebo ne všude.

01. lis 2015 09:55 #124274
Odpověď od Ernst
Joomla Expert
Základní chyba byla, že jsem měl ve dvou modulech stejný název funkce "formajax". Zjevně se chová jako public a volala se s klidem funkce z toho druhého modulu.
ten parametr na to neměl vůbec vliv

01. lis 2015 10:11 #124275
Odpověď od Ernst
Joomla Expert
když bych chtěl na základě té hodnoty "data" v .done zavolat další formulář, jak to udělat?

01. lis 2015 15:26 #124277
Odpověď od Cony
Moderátor

ernst napsal: ten parametr na to neměl vůbec vliv

No pokud nemáte někde globální proměnou form, tak na to vliv má. A samozřejmě, pokud nadefinujete dvakrát stejný název (funkce, nebo proměnné), tluče se to mezi sebou.

Ve funci .done je data prostě jen další proměnná, můžete si s ní dělat co potřebujete. Ve funkci můžete volat další funkce dle libosti.

01. lis 2015 17:30 - 01. lis 2015 17:33 #124279
Odpověď od Ernst
Joomla Expert
takže klidně funkci ve které bude formulář? I když to stále bude v modulu jako vlastní obsah?

01. lis 2015 20:06 #124282
Odpověď od Cony
Moderátor
Ježiš o čem to zas mluvíte? V javascriptu, ve funkci done si můžete volat další javascriptové příkazy dle libosti. Ať koukám jak koukám, žádný formulář v té funkci nevidím. A co to má společnýho s modulem?

Powered by Fórum