Kde mám chybu?

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

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

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
30. říj 2015 18:29 - 30. říj 2015 18:31 #124257
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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
30. říj 2015 23:18 - 30. říj 2015 23:30 #124263
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ří

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
30. říj 2015 23:44 #124264
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');
  });
}

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
31. říj 2015 00:19 - 31. říj 2015 00:22 #124265
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?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

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

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
01. lis 2015 00:21 #124270
tak testuji, ale asi to není tak jednoduché"
JS.
<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
<?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?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

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

Zkuste
<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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
01. lis 2015 09:55 #124274
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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

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

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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
01. lis 2015 20:06 #124282
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?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.