Diskuze: Objednavkovy formular JS
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
rychlá odpověď = v javascriptu nelze vytvořit posílání emailů.
PHP: http://www.itnetwork.cz/…ovy-formular
.NET: http://www.itnetwork.cz/…ha-formularu nebo http://www.itnetwork.cz/…ha-formularu
Samozřejmě ukazovat v JS něco na základě jiné hodnoty je možno.
Např: http://jsfiddle.net/at87z3r9/1/ (když cena je 1000 a výš,
cena za dopravu je menší)
Ahoj, díkes za pomoc
a
nevíš jak mám zadat v PHPku aby chodily udaje i na email, který vyplní
zákazník? Celé mi to odesílá v pohodě, jen mně to chodí jenom na můj
email $to (prijem@objednavek.cz),
potřebuju aby kopie objednavky prisla i tomu zakaznikovi resp. na ten email,
který vyplní ve formuláři.
Takhle prijde email. zprava na muj mail kde je odesílatel, ten kdo vyplnoval formular:
<?php
$to = "prijem@objednavek.cz";
$from = "From: " .$_POST['email'];
$subject = "Objednavka";
Poradíš prosím? Moc díky
Michal
Když do $to dáš čárku a za ni $_POST s jeho mail-em.
Ještě jednou díky, mám ale trochu problém, mám více řádků:
pocek sk x nazev produktu x cena
pocek sk x nazev produktu x cena
.
.
.
atd.
Celkově mi cenu sčítá, ale u jednoho řádku u toho prvního mi to dává
jinou cenu dopravy tu nižší a má být vyšší, u druhého řádku už to
přiřazuje správně..
Vubec nevim co s tím 
diky Michal
Jezis promin 
Ono mi to pocita v poho..ale jen tu dopravu z prvniho radku resp. z toho
ktery vyplnim jako prvni
pak
kdyz vyplnuju dale tak celkovou cenu to scita ale tu vysi dopravy to ponechava z
toho prvniho vyplneni radku
http://jsfiddle.net/at87z3r9/3/
diky moc , Michal
ahoj, tak uz mi to nejak nepocita vubec 
moc tem scriptum tolik nerozumim , nahral sem ten formular kompletne
Já osobně nesnáším proplétání kódů, takže bych všechny html atributy jako onChange a onBlur smazal a vše bych psal přímo do JS, ale to asi přímo nevadí.
K tvému problému.
theform.cenac1.value = parseInt(theform.ks1.value) * parseInt(theform.cenap1.value);
Tohle by asi mohlo fungovat, ale jak tak koukám do ceny za dopravu, tak to
nebudou všechno asi celočíselný ceny, takže nemůžeš použít integery,
ale místo nich přijdou na řadu floaty, což jsou právě čísla i s
desetinou čárkou.
Otázka je, jestli přesně ještě potřebuješ násobit nějkou jinou hodnotu,
jelikož zadáváš jen množství, nikoli cenu. Tedy by to bylo množství
* předem daná cena.
Nijak bych to zbytečně neřešil a udělal bych si to přes dvě pole, což asi není nejlepší způsob, ale pro tohle nám to postačí. Jedno pole by bylo právě nastavené jako oné ceny a druhé pole by byly hodnoty množství.
Příkladově si to můžeme udělat takhle:
ceny = [];
cena[0] = 23.50;
cena[1] = 15.50;
cena[2] = 100;
Nebo možná ještě líp, přes asociativní pole (ehm, vlastně objekt), ale nebude nám fungovat nižší způsob sčítaní.
cena={mrkev: 23.50, jablko: 15.50, meloun: 100};
Druhé pole už by byly kusy:
kusy = document.getElementsByClass("kus"); //v tvém případě asi spíš document.getElementsByName
kusy[0].value;
//…
celkovaCena = cena[0] * parseInt(kusy[0].value); //nebo cena[“mrkev”], nebo cena.mrkev ;
Pro součet musíš vše připočítávat do jedné proměnné a to je důvod proč mě prvně napadla ta pole, bude stačit to projet cyklem.
var celkovaCena;
for (var i = 0; i < cena.length; i++) {
celkovaCena += cena[i] * parseInt(kusy[i].value);
}
Pote uz stačí udělat zase podmíku s cenou dopravy a je to. Jen zase připomenu floaty, pokud cena za dopravu bude třeba 28,61, budeš si to muset sečíst jako floaty.
celkovaCena = parseFloat(celkovaCena) + parseFloat(doprava);
Také si dej si pozor na formát floatu, měl by být oddělený tečkou nikoli čárkou, tedy 28.61. Pokud si budeš muset použít čárku, při parsování ještě změň čárku za tečku.
parseFloat(doprava.replace(",","."));
Samozřejmě jsou tu i jiná řešení, nemusíš si třeba dělat cyklus a můžeš to sečíst ručně.
Doufám, že to alespoň trochu pomohlo.
Ahoj,
díky moc za pomoc 
Ještě bych potřeboval, aby mi to posílalo na email IP adresu toho, kdo
pošle data z formuláře. A to vůbec netuším, jak provést, protože to
není php stránka, ale HTML, přes PHPčkovou stránku se pouze údaje
odesílají. Nevíš jak to pořešit?
Ještě jednou mooooc díky
Michal
Bohužel si javascriptem IP nezjistíš.
Ale jak tak koukám, tak budou nějaké workaroundy třetích stran např. http://l2.io/, demo http://jsfiddle.net/9ZrLz/, a vůbec by bylo dobré si to udělat sám od sebe tímhle způsobem.
Poté si tuto proměnou předej pomocí AJAXu tam, kde posíláš emaily, a
nebo pokud to máš úplně vedle, můžeš si to předat stejným způsobem
jako se dělá pixel tracking.
Krásnej jednoduchej návod na pixel tracking v php zde http://stackoverflow.com/…9838/3066751
Zobrazeno 13 zpráv z 13.