Avatar
Michal
Člen
Avatar
Michal:

Dobrý den,
nemáte někdo script jednoduchý formular v JS?
Potrebuji:
Jmeno Prijmeni
Adresa, PSC
Pocet ks x nazev produktu x cena x cena celkem
Celkova cena
Doprava
Celkova cena s dopravou
(Kdyz je soucet obj. produktů vyšší než urcita castka , tak doprava je nizsi)
Aby to posilalo na email mně a zakaznikovi Diky moc všem Michal

 
Odpovědět 20.2.2015 8:55
Avatar
Aleš Lulák
Člen
Avatar
Odpovídá na Michal
Aleš Lulák:

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ší)

Editováno 20.2.2015 9:26
Nahoru Odpovědět 20.2.2015 9:24
Jsem hloupý člověk, proto se musím vzdělávat
Avatar
Aleš Lulák
Člen
Avatar
Odpovídá na Aleš Lulák
Aleš Lulák:

*drobná chyba, v podmínce má být samozřejmě 1000

Nahoru Odpovědět 20.2.2015 9:28
Jsem hloupý člověk, proto se musím vzdělávat
Avatar
Michal
Člen
Avatar
Odpovídá na Aleš Lulák
Michal:

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@objed­navek.cz";
$from = "From: " .$_POST['email'];
$subject = "Objednavka";

Poradíš prosím? Moc díky

Michal

 
Nahoru Odpovědět 20.2.2015 10:55
Avatar
Odpovídá na Michal
Michal Šmahel (ceskyDJ):

Když do $to dáš čárku a za ni $_POST s jeho mail-em.

Nahoru Odpovědět  +1 20.2.2015 12:23
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Michal
Michal Šmahel (ceskyDJ):
$to = "prijem@odjednavek.cz, $_POST['email']";
Nahoru Odpovědět 20.2.2015 12:34
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Michal
Člen
Avatar
Odpovídá na Aleš Lulák
Michal:

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

http://jsfiddle.net/at87z3r9/1/

 
Nahoru Odpovědět 20.2.2015 16:25
Avatar
Aleš Lulák
Člen
Avatar
Odpovídá na Michal
Aleš Lulák:

Obavám se, že jsi neposlal správný odkaz :)

Nahoru Odpovědět 20.2.2015 16:55
Jsem hloupý člověk, proto se musím vzdělávat
Avatar
Michal
Člen
Avatar
Odpovídá na Aleš Lulák
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

 
Nahoru Odpovědět 20.2.2015 17:15
Avatar
Michal
Člen
Avatar
Odpovídá na Aleš Lulák
Michal:

ahoj, tak uz mi to nejak nepocita vubec :(
moc tem scriptum tolik nerozumim , nahral sem ten formular kompletne

http://jsfiddle.net/mox2wmz6/

 
Nahoru Odpovědět 20.2.2015 18:16
Avatar
Aleš Lulák
Člen
Avatar
Odpovídá na Michal
Aleš Lulák:

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.

Editováno 22.2.2015 15:19
Nahoru Odpovědět 22.2.2015 15:17
Jsem hloupý člověk, proto se musím vzdělávat
Avatar
Michal
Člen
Avatar
Odpovídá na Aleš Lulák
Michal:

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

 
Nahoru Odpovědět 22.2.2015 19:08
Avatar
Aleš Lulák
Člen
Avatar
Odpovídá na Michal
Aleš Lulák:

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

Nahoru Odpovědět 23.2.2015 19:46
Jsem hloupý člověk, proto se musím vzdělávat
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.