Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Checkbox i text razem na maila
Forum PHP.pl > Forum > Przedszkole
varulven
Witam Szanownych Forumowiczów!

Mam formularz z polami checkbox (produkty do wyboru) i text (ilośc sztuk). Udało mi się (z nieocenioną pomocą przyjaznych ludzi) zbudować go tak, że wysyła na mojego maila oraz na "stronę dziękującą" tylko te punkty z 'checkbox' ( w tym wypadku produkty), które zaznaczył użytkownik. Niestety, nie mogę dojść, w jaki sposób zrobić to samo z polami 'text'. Tzn. tak, żeby w "stronie zwrotnej" i mailu pokazały się tylko produkty z 'checkbox' wraz z podaną ilością sztuk.

W jaki sposób mogę wykonać takie coś? Podkreślam, że jestem jasnozielony z PHP:(
Może gdzieś mogę poczytać o takich przypadkach?

Dziękuję z góry za wszelkie podpowiedzi i wskazówki!

html:
  1. <form enctype='multipart/form-data' name="produkty[]" action='process.php' method='post'>
  2. <input type=text name='email' /><br />
  3.  
  4. <input type='checkbox' name='produkty[]' value='produkt1' />produkt1
  5. <input name="sztuk" type="text" class="sztuki" id="sztuk" />sztuk<br />
  6.  
  7. <input type='checkbox' name='produkty[]' value='produkt2' />produkt2
  8. <input name="sztuk" type="text" class="sztuki" id="sztuk2" />sztuk<br />
  9.  
  10. <input type='checkbox' name='produkty[]' value='produkt3' />produkt2
  11. <input name="sztuk" type="text" class="sztuki" id="sztuk3" />sztuk<br />
  12.  
  13. <input type='checkbox' name='produkty[]' value='produkt4' />produkt4
  14. <input name="sztuk" type="text" class="sztuki" id="sztuk4" />sztuk<br />
  15.  
  16. <input type='checkbox' name='produkty[]' value='produkt5' />produkt5
  17. <input name="sztuk" type="text" class="sztuki" id="sztuk5" />sztuk<br />
  18.  
  19. <input type='checkbox' name='produkty[]' value='produkt6' />produkt6
  20. <input name="sztuk" type="text" class="sztuki" id="sztuk6" />sztuk<br />
  21.  
  22. <textarea name='wiadomosc' rows=5 cols=20></textarea>
  23. <input type='hidden' name='envvariable' value='date_stamp' />
  24. <input type=submit value='Submit Form' onclick="return confirm('Wysłać formularz?');"/>
  25. <input type=reset value='Reset Form' />
  26.  
  27. </form>


php:
  1. <?php
  2. $wiadomosc = htmlspecialchars($_POST['wiadomosc']);
  3. $produkty = $_POST['produkty'];
  4. $mail = htmlspecialchars($_POST['mail']);
  5. $data = date('l jS of F Y h:i:s A');
  6. date_default_timezone_set('Europe/Warsaw');
  7.  
  8. // miejsce na test e-maila
  9.  
  10. for($i=0; $i<sizeof($produkty); $i++)
  11.    $produkty_mail .= $i.' '.htmlspecialchars($produkty[$i])."\n";
  12.    
  13. $tresc_maila = "$data\n\n Mail: $mail \n\nProdukty:\n $produkty_mail\n Wiadomosc:\n".$wiadomosc;
  14. mail("[email="moj@mail.com"]moj@mail.com","From[/email] Submitted at your website", $tresc_maila, "From: zamowienie towaru");
  15.  
  16. $wiad_dla_uzyt = '<h2>Thank you!</h2><ul><li>mail: '.$mail.'</li>';
  17. for($i=0; $i<sizeof($produkty); $i++)
  18.    $wiad_dla_uzyt .= '<li>'.htmlspecialchars($produkty[$i]).'</li>';
  19. $wiad_dla_uzyt .= '<li>wiadomosc: '.$wiadomosc.'</li><li>czas: '.$data.'</li></ul>';
  20. ?>
  21.  
  22. // miejsce na gorny kod strony
  23. <?php echo $wiad_dla_uzyt; ?>
  24. // miejsce na dolny kod strony


Pozdrawiam!
guilty82
  1. <?php
  2. <form enctype='multipart/form-data' name="produkty" action='process.php' method='post'>
  3.  
  4. ...
  5.  
  6. <input type='checkbox' name='produkty[0]' value='produkt1' />produkt1
  7. <input name="sztuk[]" type="text" class="sztuki" id="sztuk" />sztuk<br />
  8.  
  9. ...
  10.  
  11. <input type='checkbox' name='produkty[5]' value='produkt6' />produkt6
  12. <input name="sztuk[]" type="text" class="sztuki" id="sztuk6" />sztuk<br />
  13. ?>


Teraz

  1. <?php
  2. $prod = $_POST['produkty'];
  3. $sztuk = $_POST['sztuk'];
  4.  
  5. foreach ($prod as $key => $val) {
  6.    echo "Prod: ".$val;
  7.    if (isset($sztuk[$key])) {
  8.            echo " Ilosc: ".$sztuk[$key]."<br />";
  9.    }
  10. }
  11. ?>
WojtasSP320
  1. <form enctype='multipart/form-data' name="produkty" action='process.php' method='post'>
  2. <input type=text name='email' /><br />
  3.  
  4. <input type='checkbox' name='produkty[]' value='produkt1' />produkt1
  5. <input name="sztuk[]" type="text" class="sztuki" id="sztuk" />sztuk<br />
  6.  
  7. <input type='checkbox' name='produkty[]' value='produkt2' />produkt2
  8. <input name="sztuk[]" type="text" class="sztuki" id="sztuk2" />sztuk<br />
  9.  
  10. <input type='checkbox' name='produkty[]' value='produkt3' />produkt2
  11. <input name="sztuk[]" type="text" class="sztuki" id="sztuk3" />sztuk<br />
  12.  
  13. <input type='checkbox' name='produkty[]' value='produkt4' />produkt4
  14. <input name="sztuk[]" type="text" class="sztuki" id="sztuk4" />sztuk<br />
  15.  
  16. <input type='checkbox' name='produkty[]' value='produkt5' />produkt5
  17. <input name="sztuk[]" type="text" class="sztuki" id="sztuk5" />sztuk<br />
  18.  
  19. <input type='checkbox' name='produkty[]' value='produkt6' />produkt6
  20. <input name="sztuk[]" type="text" class="sztuki" id="sztuk6" />sztuk<br />
  21.  
  22. <textarea name='wiadomosc' rows=5 cols=20></textarea>
  23. <input type='hidden' name='envvariable' value='date_stamp' />
  24. <input type=submit value='Submit Form' onclick="return confirm('Wysłać formularz?');"/>
  25. <input type=reset value='Reset Form' />
  26.  
  27. </form>


  1. <?php
  2. for ($i=0;$i<count($_POST['produkty'];$i++)
  3. {
  4. if ($_POST['produkty'][$i] != '') echo $_POST['sztuk'][$i];
  5. }
  6. ?>


Czy jakoś tak...

Pisałem z głowy, nie koniecznie musi działać - sprawdź.
varulven
Dziękuję Wam Panowie wielce!

Pozostaje tylko ta kwestia z mailem wysylanym do mnie (wraz z tymi danymi). W jaki sposob trzeba to polaczyc? Wybaczcie, ale ja naprawde patrze na kod PHP, jak krowa w niemalowane wrota...

PS.Niebawem rozpoczynam glebsza nauke, ale akurat teraz wyskoczylo mi takie cos, co musze dodac do stronki i klapa. Zanim do tego dojde podczas nauki z ksiazek, to troche minie:(
WojtasSP320
  1. <?php
  2. $to = 'twoj@adres.pl';
  3. $from = 'From: adres@zwrotny'."\n"; //może być taki sam jak $to
  4. $subject = 'Wiadomość ze strony www'; //temat
  5.  
  6. $message = wordwrap(print_r($_POST),70);
  7.  
  8. $result = mail($to,$subject,$message,$from);
  9. ?>


Najprościej jak się da (możesz wypisać po kolei wszystkie pola $_POST['produkty'][] i $_POST['sztuk'][], żeby to jakoś wyglądało)...
varulven
Dzięki za pomoc WojtasSP320, ale chyba coś źle robię, bo u mnie to nie działa. Jestem za tępy w PHP. Po wysłaniu formularza, w przeglądarce pojawia mi sie takie coś:
Kod
Array ( [email] => [produkty] => Array ( [0] => produkt1 [1] => produkt2 [2] => produkt3 ) [sztuk] => Array ( [0] => 15 [1] => 5 [2] => 9 [3] => [4] => [5] => ) [wiadomosc] => [envvariable] => date_stamp )


Nie ma tutaj działu "żłobek"? winksmiley.jpg
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.