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 19:06 #124187
Odpověď od Ernst
Joomla Expert
právě to studuji
to php z formuláře mohu volat např.
Code:
<form name="form"> <input type="text" name="form2"> <input type="text" name="form3"> <a href="javascript:form();">OK</a> </form>
Code:
<form action="send.php" method="GET"> <input type="text" name="prom1" /> <input type="text" name="prom2" /> <input type="submit" /> </form>

nebo co jsem použil já
Code:
<button onclick="form()"><img src="../images/tl_refresh_a.png" /button>

ale proč se mi proboha nezavolá to php (mám na jeho začátku dán zápis do logu)

koukám na to a nemohu to vykoukat.
asi prvně zkusím místo checbox dát třeba select nebo text.
tam to snad bude srozumitelnější

nebo to zkusit napsat nějat takhle?
Code:
<form action="form-1.php" method="post"> Jméno: <input type="text" name="jmeno"> věk: <input type="text" name="vek"> <input type="submit" value="odeslat"> </form> <? $jmeno = $_POST['jmeno']; $vek = $_POST['vek']; ?> <p><? echo "$jmeno"; ?> je pěkné jméno i když je ti <? echo "$vek"; ?> let...</p>

ale mně se ten ajax líbí nejvíc

27. říj 2015 20:31 #124198
Odpověď od Ernst
Joomla Expert
tak jsem to zkusil jiným způsobem

JS:
Code:
<form method="GET" action='/components/com_lovefactory/models/lmenutest.php' > <input type="checkbox" name="form2" /> <span style="color: #999999;">Skryj moje umístění na mapě</span><br> <input type="checkbox" name="form3"/> <span style="color: #999999;">Změň svoji pozici na mapě</span><br> <input type="submit"><img src="../images/tl_refresh_a.png">
pak php
Code:
<?php define( '_JEXEC', 1 ); if (!isset($_GET["form2"])) {$f2="off";} else {$f2=$_GET["form2"];} ; var_dump($f2) ; if (!isset($_GET["form3"])) {$f3="off";} else {$f3=$_GET["form3"];} ; var_dump($f3) ;

tak se mi to do toho php předá ok, mohu si to tam zapsat do databáze atd.
ale zůstane mi to na té volané stránce ) prázdná stránka ale já se potřebuji vrátit na tu původní stránku, ta ale může být pokaždé jiná

27. říj 2015 20:44 #124199
Odpověď od Ernst
Joomla Expert
to jsem alespoň částečně vyřešil
stačí za to php dát
Code:
<script> javascript: history.go(-1) </script>

ale ta prodleva bílé stránky je na můj vkus dost dlouhá.
opravdu bych to rád vyřešil tím ajaxem, ale to by mně tady někdo musel trochu nakopnout, protože javascript se učím teprve třetí den

27. říj 2015 22:53 - 27. říj 2015 22:55 #124208
Odpověď od Cony
Moderátor
Zase mícháte hrušky a jabka.
Z AJAX jste udělal klasické odeslání formuláře. To že se Vám zobrazí bílá stránka znamená že v souboru lmenutest.php nic nevypisujete. To že jste přidal history.go(-1) (i když ten zápis je zase šílený) znamená to, že na klienta pošlete skript, který mu řekne, že se má vrátit v hostorii o jeden krok zpět.

Principielně všechno špatně
  1. místo AJAX (tedy asynchorního volání, na které uživatel nemusí čekat) načítáte celou stránku a to dokonce dvakrát (odeslání a vrácení se v historii)
  2. stránka pro odeslání (lmenutest.php ) Vám zůstane v historii prohlížeče, zkuste po odeslání dát v prohlížeči "Vpřed", formulář se Vám "odešle" znovu
  3. Neustále ten AJAX (nebo prosté odeslání) řešíte mimo strukturu Joomly, ve vlastních souborech. Za prvé je to zbytečně složité, za druhé obcházíte bezpečnostní mechanismy Joomly. Zbytečně riskujete hack.

Jednoduchý příklad na AJAX odeslání formuláře naleznete např. zde . Nebo pro ještě jednodušší řešení, můžete využít nějaký plugin pro jQuery.

27. říj 2015 23:25 #124212
Odpověď od Ernst
Joomla Expert
díky prostuduji si to
stejně jsem se chtěl k ajaxu vrátit.

28. říj 2015 12:55 - 28. říj 2015 12:57 #124215
Odpověď od Ernst
Joomla Expert
pustil jsem se do toho znovu od počátku abych to mohl udělat ajaxem
Code:
<form name="form"> <input type="checkbox" name="form2"> <input type="checkbox" name="form3"> <a href="javascript:formajax();">OK</a> </form> <script> function formajax(){ var p1 = jQuery(form).find('[name=form2]'); window.alert(p1); var p2 = document.form.form3.value; window.alert(p2); } </script>

vím, že nemohu použít document.form.form3.value;
ale za boha nemohu nikde najít, jak z jQuery(form).find('[name=form2]') zjistím zda je zaškrtnut nebo ne. Vrací to objekt.
Nemohu to nikde vygooglit. Poraďte prosím

Powered by Fórum