Diskuze: Objednavkovy formular JS
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.