Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nietypowe pole formularza
sylwekb
post 29.09.2014, 17:56:52
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

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


Witam
Czy ktoś spotkał się z takim polem w którymś z formularzy, który miałby możliwość dodania przez wypełniającego formularz kolejnego pola w razie potrzeby?
np pole tekstowe np numeryczne do wpisania tylko liczb, po kliknięciu obok w +
pojawiałoby się pod spodem
nowe pole tekstowe i po kliknięciu + i pojawiałoby się kolejne?

Poza tym standardowe pola jak imię, nazwisko, adres, telefon, e-mail, formularz ma być przesyłany na e-mail zarówno nadawcy jak i odbiorcy?

Czy może gdzieś jest jakiś gotowiec jak to wygląda bo szukam i nie mogę znaleźć takiego rozwiązania?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
nospor
post 29.09.2014, 17:58:01
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dodatkowe pola dodajesz przy pomocy JS


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sylwekb
post 29.09.2014, 18:09:18
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

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


Jakiś przykład bo nie mogę znaleźć nigdzie takiego rozwiązania. Chyba jakieś zaćmienie i google jakoś także nie chce pomóc.
Go to the top of the page
+Quote Post
trueblue
post 29.09.2014, 18:13:49
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


https://www.google.pl/search?q=dynamically+...elds+javascript
Drugi, trzeci link.


--------------------
Go to the top of the page
+Quote Post
sylwekb
post 30.09.2014, 13:34:14
Post #5





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

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


Dziękuję bardzo, w sumie po implementacji do formularza działa tylko jest problem jak zrobić aby z tego dynamicznego pola przesyłało na e-mail bo obecnie przesyła samo słowo Array i jak go zabezpieczyć aby minimum jedno pole obowiązkowo wypełnić? Nigdzie nie mogę tego znaleźć. Pozostałe pola oczywiście się przesyłają na e-mail.

Fragmenty za to odpowiedzialne

$myInputs = $_POST["myInputs"];
foreach ($myInputs as $eachInput) {
echo $eachInput . "<br>";
}


$Body .= "Numer seryjny urządzenia 1: ";
$Body .= $myInputs;

Poniżej wklejam cały kod skryptu przesyłającego formularz.

  1. <html>
  2. <head>
  3. <title>Konkurs 3000 w 3 miesiące</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <meta http-equiv="Content-Language" content="pl">
  6. </head>
  7. <body bgcolor="#DFDFDF">
  8. <h3 align="center">Dziękujemy za przesłany formularz</h3>
  9. <?php
  10. $EmailFrom = Trim(stripslashes($_POST['fromemail']));
  11. $copy = $_POST['copy'];
  12. print "<p>Wysłać kopię? " . $copy;
  13. $EmailTo = "MOJ_EMAIL";
  14. $subject = "Konkurs 3000 w 3 miesiące";
  15. $imie = Trim(stripslashes($_POST['imie']));
  16. $nazwisko = Trim(stripslashes($_POST['nazwisko']));
  17. $nazwa_firmy = Trim(stripslashes($_POST['nazwa_firmy']));
  18. $telefon = Trim(stripslashes($_POST['telefon']));
  19. $miejscowosc = Trim(stripslashes($_POST['miejscowosc']));
  20. $firma = Trim(stripslashes($_POST['firma']));
  21. $myInputs = $_POST["myInputs"];
  22. foreach ($myInputs as $eachInput) {
  23. echo $eachInput . "<br>";
  24. }
  25. $akceptacja_regulaminu = $_POST["akceptacja_regulaminu"];
  26. $zgoda_dane_osobowe = $_POST["zgoda_dane_osobowe"];
  27. $copy = $_POST['copy'];
  28.  
  29. $Body = "";
  30. $Body .= "Imię: ";
  31. $Body .= $imie;
  32. $Body .= "\n\n";
  33. $Body .= "Nazwisko: ";
  34. $Body .= $nazwisko;
  35. $Body .= "\n\n";
  36. $Body .= "Nazwa firmy: ";
  37. $Body .= $nazwa_firmy;
  38. $Body .= "\n\n";
  39. $Body .= "Telefon: ";
  40. $Body .= $telefon;
  41. $Body .= "\n\n";
  42. $Body .= $EmailFrom;
  43. $Body .= "\n\n";
  44. $Body .= "Miejsce zakupu:";
  45. $Body .= "Miejscowość: ";
  46. $Body .= $miejscowosc;
  47. $Body .= "\n\n";
  48. $Body .= "Firma: ";
  49. $Body .= $firma;
  50. $Body .= "\n\n";
  51. $Body .= "Numer seryjny urządzenia 1: ";
  52. $Body .= $myInputs;
  53. $Body .= "\n\n";
  54. $Body .= "Akceptacja regulaminu: ";
  55. $Body .= $akceptacja_regulaminu;
  56. $Body .= "\n\n";
  57. $Body .= "Zgoda na przetwarzanie danych osobowych: ";
  58. $Body .= $zgoda_dane_osobowe;
  59. $Body .= "\n\n";
  60. $Body .= "\n";
  61. print "<p>Wiadomość w trakcie przesyłania ... ";
  62. $success = mail($EmailTo, $subject, $Body, $EmailFrom);
  63. if ($success) {
  64. print "<p>Wiadomość prawidłowo wysłana ...";
  65. }
  66. if ($copy == "yes") {
  67. $subject = $subject . " [Your Copy]";
  68. print "<p>Kopia wysłana @ " . $EmailFrom;
  69. $copysent = mail($EmailFrom, $subject, $Body, $EmailFrom);
  70. if ($copysent) {
  71. print "<p>Kopia wiadomości prawidłowo wysłana ... ";
  72. }
  73. }
  74. ?>
  75. </body>
  76. </html>
  77.  


Ten post edytował sylwekb 30.09.2014, 14:07:19
Go to the top of the page
+Quote Post
nospor
post 30.09.2014, 16:03:32
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$Body .= $myInputs;
To jest przypisanie tablicy. Nic wiec dziwnego ze dostajesz tekst array.... Masz do body dopisac kazdy element tablicy z osobna


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sylwekb
post 30.09.2014, 16:44:23
Post #7





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

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


Czy dobrze zrozumiałem, że mam wprowadzić aż 20 $body jeśli taki limit ustaliłem na dynamicznym polu wg schematu jak poniżej?
$Body .= $myInputs[1];
...
$Body .= $myInputs[20];

W niektórych przypadkach będzie potrzebne wypełnienie tylko jednego pola, w innych może być nawet 20 pól. Czy jeśli w $Body dam wszystkie 20 pól to pojawią się w e-mailu mimo, że nie zostały wypełnione czy tylko te, które zostały wypełnione?
Go to the top of the page
+Quote Post
nospor
post 30.09.2014, 17:07:57
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




MAsz uzyc petle FOREACH, tak jak uzyles jej do wyswietlenia

foreach ($myInputs as $eachInput) {
echo $eachInput . "<br>";
}

Co do niepustych, to daj warunek IF, !empty i dodasz tylko niepuste


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sylwekb
post 30.09.2014, 18:42:52
Post #9





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

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


Jakoś dziś ciężko myślę facepalmxd.gif , zrobiłem jak poniżej i Array się nie pojawia ale też nie wysyła wpisanego w formularzu kodu. Jak to zrobić w konstrukcji z tym IF i !Empty żeby nie wysyłało pustych?


  1. $Body .= "Numer seryjny urządzenia 1: ";
  2. foreach ($myInputs as $eachInput) {
  3. echo $eachInput . "<br>";
  4. }


Ten post edytował sylwekb 30.09.2014, 18:44:17
Go to the top of the page
+Quote Post
Turson
post 30.09.2014, 19:08:22
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


A odróżniasz $Body .= od echo?
Go to the top of the page
+Quote Post
sylwekb
post 30.09.2014, 19:40:56
Post #11





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

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


Już się pogubiłem, ten początkowy fragment z foreach mam wstawić do części Body bo nie rozumiem tej konstrukcji, chodzi o przesłanie dynamicznego pola na e-mail, drukuje się prawidłowo.

  1. $myInputs = $_POST["myInputs"];
  2. foreach ($myInputs as $eachInput) {
  3. echo $eachInput . "<br>";
  4. }
  5. $akceptacja_regulaminu = $_POST["akceptacja_regulaminu"];
  6. $zgoda_dane_osobowe = $_POST["zgoda_dane_osobowe"];
  7. $copy = $_POST['copy'];
  8.  
  9. $Body = "";
  10. $Body .= "Imię: ";
  11. $Body .= $imie;
  12. $Body .= "\n\n";
  13. $Body .= "Nazwisko: ";
  14. $Body .= $nazwisko;
  15. $Body .= "\n\n";
  16. $Body .= "Nazwa firmy: ";
  17. $Body .= $nazwa_firmy;
  18. $Body .= "\n\n";
  19. $Body .= "Telefon: ";
  20. $Body .= $telefon;
  21. $Body .= "\n\n";
  22. $Body .= "nadawca: ";
  23. $Body .= $nadawca;
  24. $Body .= "\n\n";
  25. $Body .= "Miejsce zakupu:";
  26. $Body .= "Miejscowość: ";
  27. $Body .= $miejscowosc;
  28. $Body .= "\n\n";
  29. $Body .= "Firma: ";
  30. $Body .= $firma;
  31. $Body .= "\n\n";
Go to the top of the page
+Quote Post
Daimos
post 30.09.2014, 22:06:11
Post #12





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


dzień dziecka
zamiast echo daj $Body .=
  1. foreach ($myInputs as $eachInput) {
  2. $Body .= $eachInput . "<br>";
  3. }

ale wstaw to za 9 linią Twojego kodu! ($Body = "";)

Ten post edytował Daimos 30.09.2014, 22:06:52


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
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: 14.08.2025 - 03:49