Autor | Zpráva | ||
---|---|---|---|
Qbuf Profil |
#1 · Zasláno: 22. 12. 2013, 12:47:48
Mám jednoduchý objednávací formulář, kde je udaná cena a jen se zadává počet objednaných kusů. Formulář je funkčný, ale mi odesílá celý seznam položek, ale potřebuju na mail zaslat jenom objednané položky. Jak to nejlíp udělat?
soubor - část formuláře formular.htm <html> <form action="odesli.php" method="post" > <!-- " PRODUKTOVA TABULKA " --> <table BORDER=0 CELLSPACING=1 CELLPADDING=1 WIDTH="80%" BGCOLOR="#FFFFEE" > <TR> <TD COLSPAN="4" class="Category" ><B>KATEGORIE PRODUKTU</B></TD> </TR> <TR bgcolor="#fef"> <TD><B>Tovar</B></TD><TD><B>Cena / Price</B></TD> <TD><B>Jednotka</B></TD> <TD><B>Množství</B></TD> </TR> <TR> <TD>Product 1</TD><TD>1,00 Kč</TD><TD>ks</TD> <TD> <input type="hidden" name="name[]" value="Product 1"> <input type="text" name="quantity[]" class="quantity" size="3" value="" onBlur="recount_price()"> <input type="hidden" name="price[]" class="price" value="1.00"> </TD> </TR> <TR> <TD>Product 2</TD><TD>2,00 Kč</TD><TD>ks</TD> <TD> <input type="hidden" name="name[]" value="Product 2"> <input type="text" name="quantity[]" class="quantity" size="3" value="" onBlur="recount_price()"> <input type="hidden" name="price[]" class="price" value="2.00"> </TD> </TR> <TR> <TD>Product 3</TD><TD>3,50 Kč</TD><TD>ks</TD> <TD> <input type="hidden" name="name[]" value="Product3"> <input type="text" name="quantity[]" class="quantity" size="3" value="" onBlur="recount_price()"> <input type="hidden" name="price[]" class="price" value="3.50"> </TD> </TR> <TR> <TD>SPOLU CELKEM</TD> <TD> </TD> <TD> </TD> <TD> <input type="text" name="celkem" id="celkem" size="5" onBlur="Recount(this.form)"> €</TD> <TD> </TD> <TD> </TD> </TR> </table> <!--" ZDE JE TABULKA S KONTAKNIMI UDAJI" --> <input type="submit" name="send" value="ODESLAT"> </form> </html> ---------- soubor na odeslíání odesli.php <?php if(isset($_POST['send'])) { $email = ($_POST["email"]=='')?'':$_POST["email"]; $telefon = ($_POST["telefon"]=='')?'':$_POST["telefon"]; $adresa = ($_POST["adresa"]=='')?'':$_POST["adresa"]; $meno = ($_POST["meno"]=='')?'':$_POST["meno"]; $predmet = "Objednávka"; $poznamka = ($_POST["poznamka"]=='')?'':$_POST["poznamka"]; $celkem = ($_POST["celkem"]=='')?'0':$_POST["celkem"]; $produkty_name = ($_POST["name"]=='')?'':$_POST["name"]; $produkty_quantity = ($_POST["quantity"]=='')?'':$_POST["quantity"]; $produkty_price = ($_POST["price"]=='')?'':$_POST["price"]; $produkt=''; foreach ($produkty_name as $key=>$value) { $kus= ($produkty_quantity[$key]=='')?'0':$produkty_quantity[$key]; $produkt.= '<b>'.$produkty_name[$key].'</b> - Cena: '.$produkty_price[$key].'€ - Počet kusov: '.$kus.'<br>'; } $text =' Meno: '.$meno.' <br> Telefon: '.$telefon.' <br> Adresa: '.$adresa.' <br> Email: '.$email.' <br> <br> Poznamka: '.$poznamka.' <br> <br> Celkova cena: '.$celkem.'€ <br> <br> Produkty:<br> '.$produkt; $headers .= 'From: ' .$email. "\r\n"; if ( mail("mail@nejaky mail.cz", $predmet, $text, $headers) ){ echo "Mail byl odeslán"; } else { echo "Mail se nepodarilo odoslat"; } } ?> |
||
Alphard Profil |
#2 · Zasláno: 22. 12. 2013, 13:20:25
Tak si upravte podmínku na 20. řádku, místo dosazení nuly danou položku ignorujte. Pomocí klasického ifu.
|
||
Qbuf Profil |
#3 · Zasláno: 22. 12. 2013, 14:47:37
Alphard:
Díky za odpověď v tenhle predvánoční čas. To mne taky napadlo přez podminku nějak ignorovat to, kde je 0, ale neovladam (zatím :-) PHP tak dobře, aby se mi to povedlo. Kod na odesilani jsem dostal hotovy, jen si ho potřebuji přizpusobit . Zkusil jsem dopsat za foreach na "23." řádek if ($produkty_quantity!=0) $objednane=$produkt; a ve vyslednem $text-u jsen změnil $produkt; na $objednane. Jelikož to nefungujje (odesila vše), je to někde zle. |
||
juriad Profil |
#4 · Zasláno: 22. 12. 2013, 14:56:03
řádky 20 -- 21 nahraď za:
if($produkty_quantity[$key] != '') { $kus = $produkty_quantity[$key]; $produkt.= '<b>'.$produkty_name[$key].'</b> - Cena: '.$produkty_price[$key].'€ - Počet kusov: '.$kus.'<br>'; } |
||
Tori Profil |
#5 · Zasláno: 22. 12. 2013, 14:59:54
Anebo druhý přístup – bez jiných změn přidat na ř.19:
if ($produkty_quantity[$key] < 1) { continue; } = v případě nulového/záporného objed.množství se řádky 20-21 přeskočí a pokračuje se zpracováním dalšího produktu z formuláře.
|
||
Qbuf Profil |
#6 · Zasláno: 22. 12. 2013, 16:05:48
Juriad
to mi doplní zapsaný počet kusů (např 4) u položky na každý dalčí řádek Produkty: Product 1 - Cena: 1.00€ - Počet kusov: Product 2 - Cena: 2.00€ - Počet kusov: 4 Product3 - Cena: 3.50€ - Počet kusov: 4 Tori - funguje to. Všem díky! |
||
Časová prodleva: 10 let
|
0