Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wysyłanie danych forumlarzu checkbox
dvd
post 20.07.2010, 12:07:55
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


Witam, piszę tutaj w akcie desperacji. Przeglądnąłem multum stron i żadna informacja mi nie pomogła w 100% tylko jedna że wyświetlało mi to co chciałem ale nie przesłało mi na meila. Tak więc przechodzę do rzeczy:
Skrypt działa poprawnie i bardzo szybko z wyjątkiem formularza checkbox, tak więc jeżeli zaznaczę jedną opcję wszystko jest w porządku problemy zaczynają się dopiero gdy zaznaczę więcej niż jedną opcję wtedy na meila przychodzi ostatnia zaznaczona opcja a ja bym chciał aby przychodziły dwie.

Dodam że próbowałem bawić się z pętlą zrobiłem nawet modyfikacje działa prawidłowo wyświetla się tylko że nie wysyła na pocztę,a ja nie umiem przekierować zmiennej aby wysłała go na meila.
Mam prośbę aby ktoś mógł luknąć na ten skrypt i tak zrobić aby działały checkbox'y proszę i dziękuję.

  1. <?php
  2.  
  3. // sprawdzamy, czy zmienna $submit jest pusta
  4. if (empty($_POST['submit'])) {
  5. // wyświetlamy formularz
  6. echo "
  7. <table border=\"0\"><form method=\"post\">
  8. <tr>
  9. <td width=\"150\">Imię:</td>
  10. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  11. </tr>
  12. <tr>
  13. <td valign=\"top\"> Ulubiony napój:</td>
  14. <td>
  15. <input type=\"checkbox\" name=\"woda\" value=\"coca\">Coca cola<br>
  16. <input type=\"checkbox\" name=\"woda\" value=\"mirinda\">Mirinda<br>
  17. <input type=\"checkbox\" name=\"woda\" value=\"sprite\">Sprite<br>
  18. <input type=\"checkbox\" name=\"woda\" value=\"seven\">Seven Up<br>
  19. <input type=\"checkbox\" name=\"woda\" value=\"pepsi\">Pepsi<br>
  20. </tr>
  21.  
  22. <tr>
  23. <td>&nbsp;</td>
  24. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;<input type=\"reset\" value=\"Wyczyść\"></td></form>
  25. </tr>
  26. </table>";
  27. }
  28.  
  29. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  30. elseif (!empty($_POST['imie']) && !empty($_POST['woda'])) {
  31. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  32.  
  33. // zmienna $message zawiera treść wiadomości
  34. $message = "Imię: $_POST[imie]\nUlubiony napój: $_POST[woda]\n";
  35.  
  36. // zmienna $header zawiera przede wszystkim adres zwrotny
  37. $header = "From: $_POST[imie]";
  38.  
  39. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  40. @mail("nazwa@domena.pl", "Formularz $_POST[imie]","$message","$header")
  41. or die('Nie udało się wysłać wiadomości');
  42.  
  43. // wyświetlenie komunikatu w przypadku powodzenia
  44. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  45. }
  46. // lub w przypadku nie wypełnienia formularza do końca
  47. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!<br><p align=\"right\"></span>";
  48. ?>


Pozdrawiam
Go to the top of the page
+Quote Post
tehaha
post 20.07.2010, 12:16:21
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


zmienna musi być tablicą daj: name=\"woda[]\"

dodatkowo użyj pętli foreach(), żeby wypisać wszystkie dane zapisane do tej tablicy

Ten post edytował tehaha 20.07.2010, 12:18:18
Go to the top of the page
+Quote Post
dvd
post 20.07.2010, 14:37:07
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


Zrobiłem tak, inaczej nie umiem na prawdę za mało znam język dla tego was proszę o pomoc. Żeby pokazać że działa dodałem w 54 lini odwołanie $_POST[woda] i wyświetla się lecz gdy przychodzi na meila wyświetla się Array
Kurcze wyświetlać się wyświetla ale ja chciałbym żeby wysłało to na meila ;/

  1. <?php
  2. $w = $_POST['woda'];
  3.  
  4. {
  5. $N = count($w);
  6.  
  7. for($i=0; $i < $N; $i++)
  8. {
  9. echo($w[$i] . " ");
  10. }
  11. }
  12.  
  13. // sprawdzamy, czy zmienna $submit jest pusta
  14. if (empty($_POST['submit'])) {
  15. // wyświetlamy formularz
  16. echo "
  17. <table border=\"0\"><form method=\"post\">
  18. <tr>
  19. <td width=\"150\">Imię:</td>
  20. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  21. </tr>
  22. <tr>
  23. <td valign=\"top\"> Ulubiony napój:</td>
  24. <td>
  25. <input type=\"checkbox\" name=\"woda[]\" value=\"coca\">Coca cola<br>
  26. <input type=\"checkbox\" name=\"woda[]\" value=\"mirinda\">Mirinda<br>
  27. <input type=\"checkbox\" name=\"woda[]\" value=\"sprite\">Sprite<br>
  28. <input type=\"checkbox\" name=\"woda[]\" value=\"seven\">Seven Up<br>
  29. <input type=\"checkbox\" name=\"woda[]\" value=\"pepsi\">Pepsi<br>
  30. </tr>
  31.  
  32. <tr>
  33. <td> </td>
  34. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\"> <input type=\"reset\" value=\"Wyczyść\"></td></form>
  35. </tr>
  36. </table>";
  37. }
  38.  
  39. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  40. elseif (!empty($_POST['imie']) && !empty($_POST['woda'])) {
  41. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  42.  
  43. // zmienna $message zawiera treść wiadomości
  44. $message = "Imię: $_POST[imie]\nUlubiony napój: $_POST[woda]\n";
  45.  
  46. // zmienna $header zawiera przede wszystkim adres zwrotny
  47. $header = "From: $_POST[imie]";
  48.  
  49. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  50. @mail("nazwa@domena.pl", "Formularz $_POST[imie]","$message","$header")
  51. or die('Nie udało się wysłać wiadomości');
  52.  
  53. // wyświetlenie komunikatu w przypadku powodzenia
  54. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie! $_POST[woda]</strong></div>";
  55. }
  56. // lub w przypadku nie wypełnienia formularza do końca
  57. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!<br><p align=\"right\"></span>";
  58. ?>


Ten post edytował dvd 20.07.2010, 14:39:40
Go to the top of the page
+Quote Post
tehaha
post 20.07.2010, 15:24:36
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


spróbuj tak:
  1. <?php
  2. $w = $_POST['woda'];
  3.  
  4. {
  5. $N = count($w);
  6.  
  7. for($i=0; $i < $N; $i++)
  8. {
  9. echo($w[$i] . " ");
  10. }
  11. }
  12.  
  13. // sprawdzamy, czy zmienna $submit jest pusta
  14. if (empty($_POST['submit'])) {
  15. // wyświetlamy formularz
  16. echo "
  17. <table border=\"0\"><form method=\"post\">
  18. <tr>
  19. <td width=\"150\">Imię:</td>
  20. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  21. </tr>
  22. <tr>
  23. <td valign=\"top\"> Ulubiony napój:</td>
  24. <td>
  25. <input type=\"checkbox\" name=\"woda[]\" value=\"coca\">Coca cola<br>
  26. <input type=\"checkbox\" name=\"woda[]\" value=\"mirinda\">Mirinda<br>
  27. <input type=\"checkbox\" name=\"woda[]\" value=\"sprite\">Sprite<br>
  28. <input type=\"checkbox\" name=\"woda[]\" value=\"seven\">Seven Up<br>
  29. <input type=\"checkbox\" name=\"woda[]\" value=\"pepsi\">Pepsi<br>
  30. </tr>
  31.  
  32. <tr>
  33. <td> </td>
  34. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\"> <input type=\"reset\" value=\"Wyczyść\"></td></form>
  35. </tr>
  36. </table>";
  37. }
  38.  
  39. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  40. elseif (!empty($_POST['imie']) && !empty($_POST['woda'])) {
  41. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  42.  
  43. // zmienna $message zawiera treść wiadomości
  44. $all_num = count($_POST['woda']);
  45. if(is_array($_POST['woda']))
  46. {
  47. $i=1;
  48. foreach($_POST['woda'] as $value)
  49. {
  50. $water .= $value;
  51. if($i<$all_num)
  52. {
  53. $water .=", ";
  54. }
  55. ++$i;
  56. }
  57. }
  58.  
  59. $message = "Imię: $_POST[imie]\nUlubiony napój: $water\n";
  60.  
  61. // zmienna $header zawiera przede wszystkim adres zwrotny
  62. $header = "From: $_POST[imie]";
  63.  
  64. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  65. @mail("nazwa@domena.pl", "Formularz $_POST[imie]","$message","$header")
  66. or die('Nie udało się wysłać wiadomości');
  67.  
  68. // wyświetlenie komunikatu w przypadku powodzenia
  69. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie! $_POST[woda]</strong></div>";
  70. }
  71. // lub w przypadku nie wypełnienia formularza do końca
  72. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!<br><p align=\"right\"></span>";
  73. ?>
  74.  
Go to the top of the page
+Quote Post
dvd
post 20.07.2010, 19:38:10
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


Dziękuje, jesteś wielki o to mi chodziło, całą noc się męczyłem jak to zrobić, a że z php jestem cienki bo zacząłem się go uczyć to nie dawałem rady. Jeszcze raz dziękuje, pozdrawiam i życzę miłego dnia i miło spędzonych wakacji.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 09:13