Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie formularza na mail + przekazanie zmiennych
Forum PHP.pl > Forum > Po stronie przeglądarki
Robert93
Witam

Mam formularz z polami text, select i radio. Obecnie po wciśnięciu przycisku wyślij na stronie, formularz jest wysyłany na maila przez "POST". Chciałbym aby po wysłaniu na maila na kolejnej stronie wyświetlała się zawartość kilku pól formularza.
Chciałbym, aby wartościami przenoszonymi na następną stronę była zawartość pola "ilość" oraz "forma płatności".
Nie bardzo wiem jak to zrobić, dlatego proszę o pomoc : )
Poniżej obecny kod:

  1.  
  2. <?php
  3. if (count($_POST))
  4. {
  5.  
  6. $email = 'maill';
  7. $subject = 'temat';
  8. $message = 'Wiadomoœść po wysłaniu formularza';
  9. $error = 'Wystąpił błąd podczas wysyłania formularza';
  10. $charset = 'iso-8859-2';
  11.  
  12. $head =
  13. "MIME-Version: 1.0\r\n" .
  14. "Content-Type: text/plain; charset=$charset\r\n" .
  15. "Content-Transfer-Encoding: 8bit";
  16. $body = '';
  17. foreach ($_POST as $name => $value)
  18. {
  19. if (is_array($value))
  20. {
  21. for ($i = 0; $i < count($value); $i++)
  22. {
  23. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  24. }
  25. }
  26. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  27. }
  28. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  29. }
  30. else
  31. {
  32. ?>
  33. <form action="?" method="post">
  34. <ul><ul>
  35. Ilość: <BR>
  36. <select name="ilość">
  37. <option selected="selected">1 sztuka </option>
  38. <option>2 sztuki </option>
  39. <option>3 sztuki + 1 gratis </option>
  40. <option>4 sztuki + 1 gratis </option>
  41. <option>5 sztuk + 1 gratis</option>
  42. <option>6 sztuk + 2 gratis</option>
  43. <option>7 sztuk + 2 gratis</option>
  44. <option>8 sztuk + 2 gratis</option>
  45. <option>9 sztuk + 3 gratis</option>
  46. <option>10 sztuk + 3 gratis</option>
  47. </select><BR>
  48. <BR>
  49. <p>Płeć:</p>
  50. <input type="radio" name="Płeć" value="Kobieta" />Kobieta
  51. <input type="radio" name="Płeć" value="Mężczyzna" />Mężczyzna
  52. <BR>
  53. <BR>
  54. Nazwisko : <BR>
  55. <input name="Imię i Nazwisko"><BR>
  56. <BR>
  57. <BR>
  58. Adres : <BR>
  59. <textarea name="Adres" cols="30" rows="5"></textarea><BR>
  60. <BR>
  61. Telefon : <BR>
  62. <input name="Telefon"><BR>
  63. <BR>
  64. e-mail : <BR>
  65. <input name="e-mail">
  66. </ul></ul>
  67. <BR>
  68. <BR>
  69. <BR>
  70. <BR>
  71. Forma płatności : <BR>
  72. <BR>
  73. <input type="radio" name="płatność" value="list PRIORYTET" /> Płatność przelewem przesyłka listowa priorytetowa 6zł<BR><BR><input type="radio" name="płatność" value="za zaliczeniem" /> Płatność przy odbiorze przesyłka ekonomiczna 12zł
  74. <BR>
  75. <BR>
  76. <input type="checkbox" name="regulamin" value="tak" />Zapoznałem się z treścią regulaminu sklepu i akceptuje jego warunki<BR>
  77. <BR>
  78. <BR>
  79. <font color="red"><input type="submit" value="Zamów" /></font>
  80.  
  81. </form>
  82. <?php
  83. }
  84. ?>
  85. </form>
weedget
Po pierwsze to zły dział, powinno być w PHP.

Po drugie, to po
Kod
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;

wystarczy że wyświetlisz na ekranie użytkownikowi to co chcesz mu pokazać.

Inna sprawa że sama konstrukcja
Kod
echo mail()
jest średnio "elegancka"...
requ12
Polskie znaki w nazwach pół, tragedia tongue.gif

Ale jeśli już to po
Kod
echo mail(...)

dajesz normalnie
Kod
echo "Ilość sztuk:" . $_POST['ilość'] . " Sposób płatności:" . $_POST['płatność'];
Robert93
Dzięki za pomoc smile.gif
faktycznie, zapomniałem o polskich znakach, ale to będzie poprawione na gotowej stronie tongue.gif

Mam jeszcze jedno pytanie. W wiadomości mailowej przychodzą do mnie wartości pól np. przy ilości jest to "1 sztuka", lub gdy podam wartość value="jeden" to przychodzi "jeden". Czy można zrobić tak, aby zawsze przychodziła wartość "1 sztuka", a nie wartość value?
Mam nadzieję, że w miarę jasno to opisałem smile.gif
nospor
if ($value == 'jeden') echo '1 sztuka';

teraz pomysl jak to wstawić do siebie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.