Přihlásit se

Joomla 5.1.0 a Joomla 4.4.4 (17 dub 2024)

Dnes byla uvolněna nová verze Joomla 5.1.0, společně s Joomla 4.4.4. Tato verze přináší spoustu nových funkcí, vylepšení v oblasti bezpečnosti a kódu a díky těmto vylepšením i vyšší rychlost.

Vyřešeno Kde mám chybu?

26. říj 2015 00:03 - 26. říj 2015 00:06 #124160
Odpověď od Ernst
Joomla Expert
ale i když to udělám takhle, tak mi ten ajax nezavolá to php.
chyba musí být ještě někde jinde?
zjednodušený výpis
Code:
<div id="results"></div> <form name="form"> <input type="checkbox" name="form2" /> <span style="color: #999999;">Skryj moje umístění na mapě</span><br><br> <button onclick="form()"><img src="../images/tl_refresh_a.png" /button> </form> <script> function form({ var pr2 = document.form.form2.value jQuery(function(){ Query.ajax({ url: '/components/com_lovefactory/models/lmenu.php', data: {d2: pr2} }).done(function(data){ jQuery('#results').html(data); }).fail(function(){ jQuery('#results').html('AJAX selhal'); }); }, function(error){ jQuery('#results').html(error.message); }); </script>

26. říj 2015 00:47 #124161
Odpověď od Cony
Moderátor
V místě volání žádná proměnná form2 neexistuje. Nepleťte si název input prvku s JavaScriptovou proměnou, nemá to spolu co dělat. Takže:
- ano, form 2 by muselo být nejprve deklarováno jako var form2.
- ano hodnotu do proměnné form2 musíte nejprve naplnit (používáte checkboxy, uvědomte si rozdíl mezi hodnotu a stavem checkboxu zaškrtnuto / nezaškrtnuto)
- chyba musí být TAKÉ někde jinde, co třeba středníky na konci řádek?

Máte ale jednoúčelovou funkci (alespoň to tak vypadá), tak proč to neřešit až přímo ve funkci (do té si poslat jen formulář - this.form). A nejlépe pomocí jQuery, když už ho používáte
Code:
jQuery(form).find('[name=form2]') ...

26. říj 2015 01:05 #124162
Odpověď od Ernst
Joomla Expert
trošku se ztrácím, budu to muset nechat na ráno.
příkaz
var pr2 = document.form.form2.value nenaplní proměnnou pr2 hodnotou toho checkboxu?
to přeci také řeším až v té funkci
co vlastně přesně dělá jQuery(form).find('[name=form2]') ... , Vrátí výsledek toho pole?

středníky na konci stránek přebývají nebo chybí

konzole mi vypíše tohle:
Uncaught TypeError: form is not a functiononclick @ (index):177
Navigated to http://localhost/index.php/cs/?

Jaký je rozdíl mezi hodnotou a stavem checboxu? nebylo by nakonec jednodušší použít select ano/ne?
někde jsem možná četl že formulář odesílá hodnotu, jen když je checbox zaškrtnut?

26. říj 2015 01:53 - 26. říj 2015 01:54 #124163
Odpověď od Cony
Moderátor

ernst napsal: var pr2 = document.form.form2.value nenaplní proměnnou pr2 hodnotou toho checkboxu?

Hodnotou ano, ale to neznamená zaškrtnuto / nezaškrtnuto.

ernst napsal: co vlastně přesně dělá jQuery(form).find('[name=form2]') ... , Vrátí výsledek toho pole?

vyhledá ve formuláři prvek s jménem form2 za tři tečky si doplňte co potřebujete s tím prvkem dělat (zjistit checked, zjistit hodnotu).

ernst napsal: středníky na konci stránek přebývají nebo chybí

Ne na konci stránek, ale na koci řádků v javaskriptu

ernst napsal: někde jsem možná četl že formulář odesílá hodnotu, jen když je checbox zaškrtnut?

Ano, ale vy neodesíláte formulář, ale zpracováváte ho v javaskriptu. Odesílaná data si tedy musíte pořešit sám.

26. říj 2015 18:42 #124185
Odpověď od Ernst
Joomla Expert
díky, to mám zase chvíli, co studovat.
Jak jsem psal dříve, doufal jsem, že javascript se nebudu muset učit

Jde pomocí img zavolat php a tam si vše včetně javascriptu pořešit?
např.
var img = new Image();
img.src = "skript.php?a=1";

26. říj 2015 18:47 #124186
Odpověď od Houbák
Zkušený uživatel
Prakticky na jakýkoliv prvek můžete dát onclick událost a zavolat přes AJAX php soubor...

Powered by Fórum