Autor | Zpráva | ||
---|---|---|---|
moom Profil |
#1 · Zasláno: 13. 6. 2011, 12:13:47
Dobrý den, mám prosím dotaz. Zkouším pro jeden neziskový
projekt použit JavaScript PageSlide a chtěl bych ho využít pro odeslání emailu pomocí PHP. Ukázka stránky a emailového formuláře je na této ukázce. Po odkliknutí ikonky EMAILU vpravo nahoře. Bohužel mně nefunguje PHP, které mám určitě správně, protože ho používám všude jinde. Máte prosím nějakou radu, jak udělat podobný efekt, třeba pomocí jiného JS, nebo jak by to šlo udělat, vyřešit? Případně má toto řešení nějaký problém, který mě zatím nenapadá :) prosím, prosím, máte nějakou radu |
||
Witiko Profil |
#2 · Zasláno: 14. 6. 2011, 22:40:35 · Upravil/a: Witiko
moom:
S čím je tedy problém, s PHP scriptem nebo javascriptem? Pakliže máte podezření, že javascript způsobuje nefunkčnost PHP scriptu (nepravděpodobné), tak se podělte o celý php kód / relevantní úsek, abychom mohli posoudit, kde je chyba. Slovy moderátora Chamurappiho: Prosím o živou ukázku. :-) |
||
moom Profil |
#3 · Zasláno: 15. 6. 2011, 10:01:19 · Upravil/a: moom
Děkuji za odpověď. Ukázka odkazu je nahoře. Ukázka PHP sránky na kterou
se odkazuje formulář je zde: <div> <? $predmet = iconv("utf-8", "windows-1250", $_POST['predmet']); $jmeno = iconv("utf-8", "windows-1250", $_POST['jmeno']); $email = $_POST['email']; $spam = $_POST['spam']; $text = iconv("utf-8", "windows-1250", $_POST['text']); if ($predmet!="" and $email!="" and $text!="" and $spam=="11") { Mail ("email@email.cz", $predmet, "Jmeno:".$jmeno."\n".$text, "From: " . $email . "\nContent-type: text/plain;charset=windows-1250\n"); echo "<p class=\"ok\">Váš email byl v pořádku odeslán.</p> "; } else { echo "<p class=\"spatne\">Váš email se nepodařilo odeslat.</p>"; } ?> </div> Problém asi bude v tom, že stránka která se otevře zprava pomocí PageSlide je načtená ze samostatného souboru email.html který obsahuje pouze DIV s formulářem a ten by správně měl načítat další stránku poslat.php, kde je právě tento kód. Asi nejde udělat aby PageSlide načetl místo současné jinou PHP stránku. Ale teď mě napadlo, že by šlo udělat, že by PageSlide mohl načíst rovnou stránku PHP , ale to zase netuším jak udělat formulář a nechat PHP přímo v jednom souboru... No, babo raď, jsem z toho jelen a rád bych použil tento vyjížděcí efekt... Prosím, prosím, nemáte nějakou radu |
||
Witiko Profil |
#4 · Zasláno: 15. 6. 2011, 19:37:14 · Upravil/a: Witiko
moom:
Problém je v pluginu. Dle zběžného pohledu následující úsek kódu: $(this).unbind("click").bind("click", function() { function _checkA(elm) { for (; elm != null; elm = elm.parentElement) { if (elm.tagName == "A") return true; } return false; } _openSlide(this); $("#pageslide-slide-wrap").unbind("click").click(function(e) { if (!_checkA(e.target)) return false; }); if (settings.modal != true) { $(document).unbind("click").click(function(e) { if (!_checkA(e.target)) { $(document).unbind("click"); _closeSlide(e); return false; } }); } return false; }); if (elm.tagName == "A") return true; nahradit za if (elm.tagName == "A" || elm.tagName == "INPUT") return true; , načež by mělo být submit tlačítko nakliknutelné. Řekněte, jak jste pochodil.
|
||
moom Profil |
#5 · Zasláno: 15. 6. 2011, 20:31:09 · Upravil/a: moom
škoda, škoda, nějak to nepomáhá. Vyzkoušel jsem zaměnit
kód, ale nic. Kurňa práce... Asi se budu muset vzdát této vychytávky a použít něco jiného... Můžete to otestovat, kód jsem zaměnil. Ještě jsem dnes našel toto: http://theodin.co.uk/blog/ajax/contactable-jquery-plugin.html ale neodjíždí celá stránka... Prosím, prosím, nemáte nějaké řešení? |
||
Witiko Profil |
#6 · Zasláno: 15. 6. 2011, 21:02:00 · Upravil/a: Witiko
moom:
Nezaměnil, soubor jquery.pageslide.js řádek 132 :
function _checkA(elm) { for (; elm != null; elm = elm.parentElement) { if (elm.tagName == 'A') return true; } return false; } if (elm.tagName == "A") return true; nahradit za if (elm.tagName == "A" || elm.tagName == "INPUT") return true;
|
||
moom Profil |
#7 · Zasláno: 15. 6. 2011, 21:13:10
Hmm... zajímavé. Měl by tam být soubor: jquery.pageslide-new.js
kde právě na 132 řádku je ta změna. Možná se musí dát reload stránky (CTRL-R) |
||
Witiko Profil |
#8 · Zasláno: 15. 6. 2011, 21:38:32
moom
Moje chyba, nepoužíváte input , ale button . Pak tedy if(elm.tagName == "A" || elm.tagName == "BUTTON") return true;
|
||
moom Profil |
#9 · Zasláno: 15. 6. 2011, 21:44:24
Tak jsem ještě vyzkoušel načíst do PageSlide tuto stránku,
která kombinuje do jednoho souboru PHP a jQuery pro odesílání emailu. Je to uděláno pomocí tohoto návodu. Formulář funguje, chodí mně i emaily. Bohužel. když to načtu do PageSlide, tak zase nefunguje tlačítko. Kontrola vyplnění formuláře funguje, ale tlačítko ne. Jako by bylo blokováno jenom pro zavření PageSlide. Ukázka zde s puvodním JS. Toto Nefunguje! A tady je už funkční ukázka s dopsaným řádkem, která funguje, ale otevře se potvrzení do nového okna... Sakrbléééé Už jenom kousek a budeme u cíle :) |
||
moom Profil |
#10 · Zasláno: 15. 6. 2011, 21:45:35
Jejda napsal jsem komentář, ještě před přečtením posledního příspěvku. Jdu to vyzkoušet :)
|
||
moom Profil |
#11 · Zasláno: 15. 6. 2011, 21:49:00
No jo už funguje i první verze pokud se přepíše na BUTTON.
Ale jak vošéfovat, aby se to načetlo ve stejném okně? Tady je ukázka s JS: jquery.pageslide-new-2.js |
||
Witiko Profil |
#12 · Zasláno: 15. 6. 2011, 21:51:32 · Upravil/a: Witiko
moom:
poslat.php se načítá ve stejném okně. Pokud chcete, aby se formulář odeslal do nového okna, pak mu dejte vlastnost target="_blank" .
|
||
moom Profil |
#13 · Zasláno: 15. 6. 2011, 21:59:58
no právě, že chci aby se načítal ve stejném okně
a nezavřel se PageSlide. Teď se po vyplnění otevře okno poslat.php s potvrzením formuláře, místo aby se změnil text, jenom v pravé vysunuté části... Omlouvám se, že mám tolik dotazů. A děkuji moc a moc za pomoc. |
||
Witiko Profil |
#14 · Zasláno: 15. 6. 2011, 22:10:02 · Upravil/a: Witiko
moom:
To, po čem prahnete by vyřešil rámec. Ve vámi uvedené stránce ale žádné rámce nejsou a formulář je vsazený do stránek napevno, nikoliv přes klientský rámec. Možností by bylo načítat stránku do skrytého rámce a po načtení provést vypsání textu javascriptem / použít ajax, ale tím se dostáváme poměrně mimo původní problém. Mimochodem doporučuji dodat u email.html do hlavičky kódování. Stránka se podle všeho načte každému, kdo nemá povolený javascript a aktuálně není kódování uvedeno. |
||
moom Profil |
#15 · Zasláno: 15. 6. 2011, 22:48:45
Jo jo, děkuji. Asi jsem si vymyslel moc složitý úkol :(
kódování jsem zatím neřešil. Vlastně email.html není ani HTML soubor s hlavičkou atd, ale jenom text s jedním DIVem. Každopádně děkuji za pomoc. Budu muset opustit tento efekt a vymyslet něco jiného. Ještě jsem našel toto, kde to asi nějak řeší JS. No, ale teď si říkám, že jestli to funguje tady: http://theodin.co.uk/blog/ajax/contactable-jquery-plugin.html Snažím se nedávat linky přímo se zobrazením konkrétní URL adresy, aby nebyla vidět moje doména, ale koukám, že jste odkázal na moji stránku přímo. Mohu prosím poprosit o schování adresy :) Děkuju, děkuju, děkuju |
||
Časová prodleva: 13 let
|
0