Autor Zpráva
Solidgauleiter
Profil
Zdravím ľudia. Musím sa už aj na vás obrátiť keďže mám jeden zásaditý problém.
Vo tvorbe webov a všetko okolo toho som amatér,začiatočník. Ovládam ako tak HTML,CSS a php a js neviem.
Mám formulár. Mám tam funkciu addrow ktorý mi pridá ďalší riadok s políčkami 2x select a 1x input text.
Potrebujem to, aby som vedel odoslať hociktoré množstvo týchto riadkov na e-mail no neviem ako to spraviť.
Funkciu addrow už mám :
<script type="text/javascript">
    function add_row(row){
        var line = '<label for="vyber">Výber:&nbsp;&nbsp;</label><select name="vyber[]" size="1" class="styled" onchange="getPrice()"><option value="Nič" selected="selected"> Výber...</option><optgroup label="Pizze"><option value="Margherita"> Margherita</option><option value="Pepperoni"> Pepperoni </option><option value="Hawaii"> Hawaii </option><option value="Classica"> Classica </option><option value="Coloseum"> Coloseum </option><option value="Spinachi"> Spinachi </option><option value="Con Funghi"> Con Funghi </option><option value="Cardinale"> Cardinale </option><option value="Napoli"> Napoli </option>...</select>  <label for="prilohy">Prílohy:</label> <input name="prilohy[]" value="Prílohy" onfocus="if (this.value==\'Prílohy\') this.value=\'\';" onblur="if(this.value==\'\') { this.value=\'Prílohy\'; return false; }" style="width:130px"" />\n</div>';
    document.getElementById("rows").innerHTML += line;        
    }
</script>

Name som dal [] aby každý riadok mal svoje vlastné pomenovanie,id ak tomu dobre chápem.

Ďalej to mám samotné políčka vo formulári :

<label for="vyber">Výber:</label>
<select name="vyber[]" size="1" class="styled" onchange="getPrice()">
<option value="Nič" selected="selected"> Výber... </option>
<optgroup label="Pizze">
<option value="Margherita"> Margherita </option>
<option value="Pepperoni"> Pepperoni </option>
....
</select>
<label for="velkost">Veľkosť:</label>
<select name="velkost[]" size="1" onchange="getPrice()">
<option value="malá" selected="selected"> Malá </option> 
<option value="veľká"> Veľká </option> 
</select>
<label for="prilohy">Prílohy:</label>
<input type="text" name="prilohy[]" value=" Prílohy" onfocus="if (this.value==' Prílohy') this.value='';" onblur="if(this.value=='') { this.value=' Prílohy'; return false; }" style="width:130px" />    
<div id="rows"></div>
<a style="float:right;margin-top:-32px" onclick="add_row();" title="Pridať ďalšiu objednávku..."><img src=".../images/plus.png" alt="+"></a>
Tak toto je všetko čo sa týka HTML súboru.

Ideme na php súbor čo dáta odošle.
<?php 
$to = "dáky e-mail";
$subject = "Pizzéria - objednávka";
$headers = "From: ".$_POST['email']."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; 
$message = "<strong>1.".$_POST["vyber"]."</strong> velkosti <strong>".$_POST["velkost"]."</strong><br> 
Prílohy: <strong>".$_POST["prilohy"]."</strong><br>
<strong>2.".$_POST["vyber2"]."</strong> velkosti <strong>".$_POST["velkost2"]."</strong><br> 
Prílohy: <strong>".$_POST["prilohy2"]."</strong><br>
----------------------------------------<br>   //// Tieto 4 riadky asi takto nemôžu byť !
Na meno: <strong>".$_POST["meno"]." ".$_POST["priezvisko"]."</strong> / ".$_POST["kontakt"]." /<br>
Na adresu: <strong>".$_POST["adresa"]."</strong><br>
Poznamky: <strong>".$_POST["poznamky"]."</strong><br><br>    
Kontakt do pizzérie: <strong>".$_POST["kontaktnaobjednavku"]."</strong>";


if(mail("dáky e-mail","$subject","$message","$headers"))
{
 print "<br><br><br><br><br><br><br><br><br><br><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Objednávka bola úspešne odoslaná.</b> <br>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='objednavky.html'>Späť</a><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
}
else
{
 print "<br><br><br><br><br><br><br><br><br><br><br><br><br><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nastala chyba. Skúste to neskôr.</b><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>\n
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='online.html'>Späť</a>";
}
?>


Potrebujem aby mi to na mail prišlo (napr. 2 objednávky) vo forme :

1. Vyber veľkosti Veľkosť
Prílohy:
2. Vyber veľkosti Veľkosť
Prílohy:
----------------------
Meno......


No mne to teraz chodí tak že ak mám jednu objednávku je tam aj tá druhá vo forme
1. velkosti
 prílohy


Mám tu áke riešenie. Name bude obsahovať [] pokiaľ dobre chápem môžem riadkov vyrobiť koľko chcem a nemusím si žiadne identifikovateľné názvy vymýšľať.
V php mi to príde ako $_POST["vyber"] a teda mi to treba spracovať v cykle:
foreach($_POST["vyber"] as $key=>$value) echo "hodnota z $key. editu je $value<br/>";


Lenže tento kód už neviem kde mám dať a ako upraviť.

Ďakujem za prečítanie topicu a odpísanie riešenie. Ďakujem :-) Ak máte otázky odpisujem hneď.

Moderátor Davex: Titulek „Addrow - Send all data with addrow“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší. Proč byl anglicky?
Solidgauleiter
Profil
Nikto mi s tým nevie poradiť ? :-/
okolojdouci
Profil *
Chápu správně, že vůbec neřešíš odesílání mailu, ale zpracování formuláře, kde je pole selectů a inputů?
Solidgauleiter
Profil
Myslím že áno. Mne ide o to, aby funkcia addrow vyrobila riadok s pridaním dákeho čísla alebo proste dačo, aby mi to mohlo dať do e-mailu. Lebo ak tam nemám [] tak mi vytvára všetky riadky s názvom vyber,velkost,prilohy. A na e-mail mi príde vždy len jedna objednávka. Ten posledný riadok príde. A ja chcem to vyriešiť aby mi prišli všetky napr. 4, na e-mail v podobe ako som písal. Takže ak si objednám 2 objednávky neprídu mi 3 alebo len jedna. Ale len tie dve.. Ako som písal :-)
_es
Profil
Solidgauleiter:
Nepridávaj obsah k elemetom takýmto spôsobom, ale metódami DOM na to určenými.
Solidgauleiter
Profil
Hmm..Neviem o čom píšeš..Mohol by mi dakto spraviť príklad na vyber a velkost,prilohy si spravím už sám ? Lebo ja inú metódu neviem..Teda neviem ani túto ale som blízko k vyriešeniu..Ja len neviem čo s týmto..
_es
Profil
Solidgauleiter:
Lebo ja inú metódu neviem.
Napríklad: appendChild a insertBefore
Solidgauleiter
Profil
Hmm ako sa nato kukám to by som nevedel zostrojiť. :-(

Kto by mi prosím vedel to spraviť ? Veľmi by som vám bol vďačný :-) Ďakujem.
Solidgauleiter
Profil
Už som to spravil cez ten pôvodný..I tak Ďakujem za pomoc :-)
_es
Profil
Solidgauleiter:
Vzhľadom na to, že si si asi nenechal poradiť, doporučujem otestovať funkčnosť všetkého na viacerých prehliadačoch.
Solidgauleiter
Profil
No nerobil som to podľa vás hlavné že to všade ide :-)
_es
Profil
Solidgauleiter:
všade ide
Fungujú ti po pridaní viacerých riadkov vo všetkých riadkoch v <input name="prilohy[]" udalosti onfocus a onblur a v <select name="vyber[]" udalosť onchange? Vyskúšaj to vo viacerých prehliadačoch.
Solidgauleiter
Profil
Ide ide :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0