Autor | Zpráva | ||
---|---|---|---|
tomas2245 Profil |
Zdravím, potreboval by som pomôcť s formulárom.
Mám ho vytvorený v HTML kóde a odosiela sa cez PHP. Som v tomto nováčik a už dlhšiu dobu si s týmto lámem hlavu ako to opraviť. Mám problém konkrétne s tým že vlastním stránku kde si ľudia objednajú tovar viď. foto: ![]() Email sa síce odošle a je všetko tak ako má byť, ale keďže tá objednávka má viac položiek(textbox-ov) tak tá ktorá zostane prázdna(nevyplnená) sa v maili zobrazí ako prázdna medzera. Ja by som ten kód potreboval upraviť tak, že keď ostane textbox prázdny aby sa nezobrazoval v email-y. Kód: <?php $meno=$_POST["meno"]; $priezvisko=$_POST["priezvisko"]; if ($_POST["nazov"] == NULL){ } else{ $nazov='NÁZOV TOVARU: '.$_POST["nazov"]; } $text=$_POST["text"]; $text=" Meno: $meno Priezvisko: $priezvisko $nazov"; ?> V e-maily to vypadá nejak takto: Meno: ... Priezvisko: ... Klávesnica: 1 ks (prázdne medzery) tu je ukrytý tovar zobrazení ako prázdna medzera Myš: 2 ks Vedeli by ste mi s týmto prosím pomôcť? Vopred Ďakujem, Tomáš. |
||
Taps Profil |
#2 · Zasláno: 2. 3. 2015, 11:49:08
tomas2245:
Pokud máš ve formuláři tak je nutné pracovat s polem např. takto <input type="text" name="nazev[]"> <? foreach($_POST['nazev'] as $nazev){ echo $nazev; } ?> |
||
tomas2245 Profil |
Jak som už písal v tomto som úplný nováčik... jedine čo viem je html.. php vobec nie.. potreboval by som to vysvetliť po lopate :D
nejaký postup ako odstrániť tie medzery už si s tým neviem dať rady :/ |
||
Taps Profil |
#4 · Zasláno: 2. 3. 2015, 12:06:04
tomas2245:
<? $meno = $_POST["meno"]; $priezvisko = $_POST["priezvisko"]; if (is_array($_POST["nazov"])) { foreach($_POST["nazov"] as $nazev){ $nazov.= $nazev."\n"; } } $text = $_POST["text"]; $text = " Meno: $meno Priezvisko: $priezvisko $nazov"; ?> dosavadní <input type="text" name="nazov"> <input type="text" name="nazov[]"> |
||
tomas2245 Profil |
#5 · Zasláno: 2. 3. 2015, 12:12:37
nefunguje to, email sa odosle ale vyplneni textbox sa nezobrazi :/
|
||
Taps Profil |
#6 · Zasláno: 2. 3. 2015, 12:25:06
tomas2245:
Na http://kod.djpw.cz/ vlož tvůj html kod formuláře |
||
tomas2245 Profil |
#7 · Zasláno: 2. 3. 2015, 12:27:56
http://kod.djpw.cz/pblb
uz sa to odoslalo ale ked dam pocet kusov tak v emaili sa nezobrazi nazov tovaru ale dva krat ze 2020 (ako pocet kusov) miesto 20. |
||
Taps Profil |
tomas2245:
Jaký name ve formuláři má počet kusů? |
||
tomas2245 Profil |
#9 · Zasláno: 2. 3. 2015, 12:32:42
ano neni tam meno ale rovno pocet kusov ale dva krat zobrazene.
|
||
Taps Profil |
tomas2245:
Zvýrazněnou část si uprav, dle skutečného názvu inputu, který symoblizuje počet kusů ve formuláři. Důležité je, aby název inputu byl jako pole tzn. nějak takto <input type="text" name="ks[]"> <? $meno = $_POST["meno"]; $priezvisko = $_POST["priezvisko"]; if (is_array($_POST["nazov"])) { foreach($_POST["nazov"] as $index => $nazev){ $nazov.= $nazev."-".$_POST['ks'][$index]. "\n"; } } $text = $_POST["text"]; $text = " Meno: $meno Priezvisko: $priezvisko $nazov"; ?> |
||
tomas2245 Profil |
teraz to napisalo ze: 2020-20
ja tych inputov mam cez 100.. |
||
Taps Profil |
#12 · Zasláno: 2. 3. 2015, 12:41:39
tomas2245:
Na tom počtu nezáleží. Jak se jmenuje formulářové pole s počtem kusů? |
||
tomas2245 Profil |
ja to mam celé v jednom.. cize nazov je vlastne ten pocet kusov
<li> <img src="obrazky/nazov.png"></a><p>NAZOV TOVARU <br><input type="text" style="text-align: center" name="nazov" size="5" /> ks </li> predtym som to mal takto: if ($_POST["nazov"] == NULL){ } else{ $nazov='NÁZOV: '.$_POST["nazov"]; } |
||
Taps Profil |
#14 · Zasláno: 2. 3. 2015, 12:48:01
tomas2245:
V tom php skriptu, který jsem navrhnul je vzato v potaz, že máš zvlášť input pro název a zvlášt input pro počet kusů. Jak tedy odlišuješ název od počtu kusů? |
||
tomas2245 Profil |
no teraz mám input iba pre počet kusov. Ale ako mám spraviť ďalší input pre názov? vedel by si mi navrhnúť input zvlásť pre názov a ks?
a keď už budú dva input-y tak pre tých 100 tovarov môže byť stále "ks" alebo musí byť "ks1,ks2" ? a nedá sa ten názov vložiť priamo do toho php kódu ako som mal pred tým a dať tam príkaz nejaký aby to vynechalo ak bude [ks] mať nulovú hodnotu? |
||
Taps Profil |
#16 · Zasláno: 2. 3. 2015, 13:52:09
tomas2245:
„no teraz mám input iba pre počet kusov. Ale ako mám spraviť ďalší input pre názov? vedel by si mi navrhnúť input zvlásť pre názov a ks?“ Stačí umístit inputy vedle sebe. „a keď už budú dva input-y tak pre tých 100 tovarov môže byť stále "ks" alebo musí byť "ks1,ks2" ?“ Nejlepší je uvést name jako pole tudíž <input type="text" name="nazov[]"> <input type="text" name="pocet_ks[]"> „a nedá sa ten názov vložiť priamo do toho php kódu ako som mal pred tým a dať tam príkaz nejaký aby to vynechalo ak bude [ks] mať nulovú hodnotu?“ To samozřejmě jde. |
||
tomas2245 Profil |
ale teraz tam budem mat dve policka neda sa ten jeden skryť? a preco v tom name musi byt []?
podla mna najjednoduchsie bude ak ti dam na tu stranku cely kod a ty by si mi ho preposlal ... :) skus sa prosim na to pozriet :) http://kod.djpw.cz/rblb |
||
Taps Profil |
#18 · Zasláno: 2. 3. 2015, 14:21:07
tomas2245:
<? $meno = $_POST["meno"]; $priezvisko = $_POST["priezvisko"]; if (is_array($_POST["rez1"])) { foreach($_POST["rez1"] as $index => $nazev){ $nazov.= $nazev."-".$_POST['pocet_ks'][$index]. "\n"; } } $text = $_POST["text"]; $text = " Meno: $meno Priezvisko: $priezvisko $nazov"; ?> |
||
tomas2245 Profil |
akoze funguje mi to... ale nevedel by si riesenie tej druhej cesty ze ten nazov je uz v tom php a bude iba jeden input??
lebo nechcem aby oni pisali nazov.. ja to mam tak spravene ze maju foto a pod tym nazov tovaru a oni daju iba pocet kusov.. |
||
Taps Profil |
#20 · Zasláno: 2. 3. 2015, 14:52:55
tomas2245:
a jakým způsobem identifikuješ, který počet kusu patří k jakému výrobku? |
||
tomas2245 Profil |
#21 · Zasláno: 2. 3. 2015, 15:05:19
niečo na tento spôsob:
if ($_POST["nazov"] == NULL){ } else{ $nazov='NÁZOV: '.$_POST["nazov"]; } takto som to identifikoval pred tým |
||
Taps Profil |
#22 · Zasláno: 2. 3. 2015, 15:12:58
tomas2245:
z tvého zápisu je zřejmé, že název výrobku odesíláš prostřednictvím $_POST |
||
tomas2245 Profil |
#23 · Zasláno: 2. 3. 2015, 15:23:46
no hej a da sa ta upravit aby to nerobilo tie medzery? ked sa nevyplni nejaky tovar ci nie?
|
||
Taps Profil |
tomas2245:
<? $nazov='NÁZOV:'.$_POST["nazov"]; ?> |
||
tomas2245 Profil |
nepomohlo, aj tak to spravilo tolko medzier kolko som vynechal tovaru.
|
||
Fisir Profil |
#26 · Zasláno: 2. 3. 2015, 16:57:14
Reaguji na tomase2245:
Za $text = " Meno: $meno Priezvisko: $priezvisko $nazov"; $text = preg_replace('/(?:\s*\R\s*){3,}/u', PHP_EOL, $text); Toto je jen zakrytí původního problému, ale vypadá to, že lepší popis současné situace z tebe nevytáhneme (alespoň já netuším, jak vypadá kód objednávacího formuláře položky). |
||
tomas2245 Profil |
#27 · Zasláno: 2. 3. 2015, 17:04:35
Fisir:
super!:) funguje to dakujem vam velmi pekne, Taps aj tebe velmi si to cením :) |
||
tomas2245 Profil |
Fisir
Ale niekedy tu medzeru to proste spravi da sa to este nejako fixnut? $text = preg_replace('/(?:\s*\R\s*){3,}/u', PHP_EOL, $text); miesto tej 3 som dal 1 a vypada to ze to pomohlo moze to tak byt? čo vlastne to číslo (1) znamená? |
||
lionel messi Profil |
#29 · Zasláno: 2. 3. 2015, 19:02:18
tomas2245:
„čo vlastne to číslo (1) znamená?“ Čísla v množinových zátvorkách sa vzťahujú na počet opakovaní v tvare {minimálny, maximálny}, čiže to znamená: aspoň jedenkrát nájdený reťazec v zátvorkách. |
||
tomas2245 Profil |
#30 · Zasláno: 2. 3. 2015, 19:15:10
lionel messi:
dakujem za odpoveď čiže to bol problém toho riadkovania? |
||
Časová prodleva: 10 let
|
0