Autor | Zpráva | ||
---|---|---|---|
cenek Profil |
#1 · Zasláno: 23. 5. 2013, 13:32:57
Ahoj,
Posílám data z formuláře přes ajax pomocí serialize do php souboru, který ho odešle na e-mail. Vypadá to nějak takhle: var data = $('form').serialize(); $.ajax({ url: "request.php", type: "GET", data: data, success: function (html) { if (html==0) { $('#msg').html('Odeslano.').addClass('successMsg'); } else alert('Chyba.'); } }); v PHP pak zpracovamam pres foreach if ($_SERVER['REQUEST_METHOD'] == "GET") { foreach ($_GET as $key => $value) { $msg .= "<tr><td width='110'><strong>" . ucfirst ($key) ."</strong></td><td>" .$value."</td></tr>"; } } To funguje. Ale problém je, že ve formuláři jsou i checkboxy, který ve výsledku vyhodí Array. Fungovalo to akorát tak, že jsem v PHP použil json_encode, ale to je taková piplačka vyladit kódování že to nejde. Potřebuju ty hodnoty seřadit přímo v tom JS Díky |
||
Jan Tvrdík Profil |
cenek:
Jak vypadá HTML toho formuláře? (konkrétně ty checkboxy) |
||
cenek Profil |
#3 · Zasláno: 23. 5. 2013, 14:12:03
Například takto
<input type="checkbox" name="operation[]" value="Praha"> <label> Praha</label> |
||
Jan Tvrdík Profil |
cenek:
<input type="checkbox" name="operation[1]" value="Praha"> <input type="checkbox" name="operation[2]" value="Brno"> A PHP pak můžeš upravit takto: foreach ($_GET as $key => $value) { if (is_array($value)) $value = implode(', ', $value); $msg .= "<tr><td width='110'><strong>" . ucfirst ($key) ."</strong></td><td>" .$value."</td></tr>"; } |
||
cenek Profil |
#5 · Zasláno: 23. 5. 2013, 14:30:50
Perfekt! Funguje... Díky moc
|
||
Jan Tvrdík Profil |
Alespoň tu XSS zranitelnost by asi bylo záhodno opravit.
foreach ($_GET as $key => $value) { if (is_array($value)) $value = implode(', ', $value); $msg .= "<tr><td width='110'><strong>" . ucfirst (htmlspecialchars($key)) ."</strong></td><td>" . htmlspecialchars($value) . "</td></tr>"; } |
||
Časová prodleva: 11 let
|
0