Přihlásit se

Kde mám chybu?

01. lis 2015 22:11 - 01. lis 2015 22:17 #124285
Odpověď od Ernst
idea je taková (možná úplně zcestná)
ajaxem si zavolám php, které v databázi vyhledá požadované hodnoty a vrátí je do .done
z done zavolám funkci s těmito parametry, která vytvoří formulář (s předvyplněnými hodnotami) a ajaxem ho pošle do dalšího php, které ty hodnoty uloží do databáze.
Dnes mně málem zabili na dálnici a jen shodou náhod to odnesly jen plechy, tak se možná vyjadřuji nejasně, zítra to chci vyzkoušet a případně lépe popsat

PS tu funkci jsem do done zatím nepsal, jen uvažuji, zda to takto půjde a zítra to zkusím.
jde o to, zda formulář může být v javascriptové funkci.

01. lis 2015 22:39 #124286
Odpověď od Cony
Tak hlavně že jen plechy a jste ok...

Ale k věci, to co chcete by samozřejmě šlo, proč ne, ale jak jsem již psal je to poměrně nesmysl. Logicky by to mělo být
- nahrát modul s předpřipravenými hodnotami rovnou (ne ajaxem)
- odeslání zpracovat ajaxem a v reakci na něj případně skrýt formulář, zobrazit místo něj děkujeme za odeslání nebo pod.

01. lis 2015 23:43 #124287
Odpověď od Ernst
s tím souhlasím, ale když už to mám hotový takhle (zatím bez přednastavených hodnot), tak to chci dotáhnout takhle.
nevím, co přesně myslíte slovy "nahrát modul", ale předpokládám, že myslíte zobrazit vlastní modul.
Tady je vše vepsáno v modulu joomly typu "vlastní obsah".
Pak se teprve chci naučit napsat vlastní modul, kde to možná bude jednodušší.
Ten formulář je tam pořád, ale hrátky s ním si mohu také vyzkoušet.
Je vidět i bez přihlášení na www.gaylocator.com
Já to dopoledne zkusím napsat, tak jak si myslím a když to nepůjde, dovolím se na to ještě doptat. Teď už se na to psychicky necítím

02. lis 2015 21:46 #124294
Odpověď od Ernst
tak jsem to začal zkoušet a moje podezření, že budu potřebovat pomoc se potvrdilo
kód mám:
Code:
<script> testajax() function testajax(){ jQuery.ajax({ url: '/components/com_lovefactory/models/testvlevo.php', }).done(function(data){ console.log(data); zobrazform(data); }).fail(function(){ console.log('Odeslání selhalo'); }); } function zobrazform(data) { } function formuloz(){ jQuery.ajax({ url: '/components/com_lovefactory/models/lmenu.php', data: {d1: form4} }).done(function(){ console.log('Odeslano'); }).fail(function(){ console.log('Odeslání selhalo'); }); } </script>

volání testvlevo.php mi do .done vrátí ty výchozí hodnoty.
Ale funkci zobrazform nemohu napsat takto
Code:
<form name="fm1"> <input type="text" name="form4" value = data > <a href="javascript:formuloz(fm1);"><img src="../images/tl_refresh_a.png" ></a> </form>
ani takto
Code:
</script> <form name="fm1"> <input type="text" name="form4" value = data > <a href="javascript:formuloz(fm1);"><img src="../images/tl_refresh_a.png" ></a> </form> <script>
.

Jak to mám udělat?

02. lis 2015 21:46 - 02. lis 2015 21:51 #124295
Odpověď od Ernst
hledám, zda tam jde dát nějaký include, ale to nějak nechápu.
Je jasný, že pokud ten script ve funkci ukončím a zase obnovím, vypíše se nejprve ten formulář a žádnou proměnnou data nezná.
Když tam ten script nepřeruším, hlásí to chybu, protože formulář asi nemůže být v rámci <script>

02. lis 2015 22:09 #124296
Odpověď od Cony

ernst napsal: Když tam ten script nepřeruším, hlásí to chybu, protože formulář asi nemůže být v rámci <script>

Zase motáte hrušky a jabka. Ne že formulář nemůže být uvnitř script, ale nemůžete motat HTML a JavaScript.
Takže HTML v Javascriptu musíte nějak šikovně vytvořit. třeba pomocí jQuery(''), nebo pomocí jQuery.html(), nebo prostě document.write(''); nebo místo čistého AJAX použít v tomto případě funkci load , nebo si formulář vytvořit již předem v PHP a v JS doplňovat jen ty hodnoty.

A nezapomínejte na středníky na konci příkazů!

Powered by Fórum