Nie przesyła kompletnych wartości wskazanych pól

0

Witam,

Pierwszy raz na forum, które dotychczas tylko czytałem i zawsze znajdowałem rozwiązanie bez konieczności dopytywania, ale niestety nie tym razem. :)

Mam problem z wysyłaniem wszystkich wartości zaznaczonych checkboksów. Przesyła na maila tylko ostatnie zaznaczone pole. Próbowałem dodać to jako tablicę, ale wówczas otrzymywałem tylko zamiast wartości pól, cyfrę 1. Czy poradzicie mi, co zrobiłem źle? Znalazłem kilkanaście wątków na ten temat, przeczytałem, zastosowałem, ale nie udało się rozwiązać problemu.

Będę Wam bardzo wdzięczny za podpowiedź. Poniżej kod z php i element formularza.

<li>
<input name="type[]" value="First" type="checkbox" id="choice_1"/>
<label for="choice_1">First</label>
<a class="checkbox-select" href="#">Check</a>
<a class="checkbox-deselect" href="#">Uncheck</a>
</li>
<li>
<input name="type[]" value="Second" type="checkbox" id="choice_2"/>
<label for="choice_2">Second</label>
<a class="checkbox-select" href="#">Check</a>
<a class="checkbox-deselect" href="#">uncheck</a>
</li>
<?php
 if($_POST['hidden']){

                $mail = new PHPMailer();
                $type=$_POST['type'];
                foreach($type as $value) {
                echo $value;
                }
                include_once("../phpmailer/class.phpmailer.php");

                $message =
                'Imię i nazwisko: '. $_POST['name'].'
                E-mail: ' . $_POST['email'] . '
                Telefon: '.$_POST['telefon'] . '
                Rezerwacja: '.$value;

                $mail->PluginDir = "../phpmailer/";
                $mail->SetLanguage("pl", "../phpmailer/language/");
                $mail->IsMail();
                $mail->From     = 'Formularz';
                $mail->FromName = $_POST['email'] ? $_POST['email'] : $_POST['name'];
                $mail->Mailer   = 'mail';
                $mail->AddAddress('[email protected]',"Rezerwacja");//

                $mail->Subject = 'Rezerwacja';
                $mail->Body = $message;
                $mail->WordWrap = 50;
                $mail->CharSet = "UTF-8";

                if(!$mail->Send())
                    echo '<span style="color: red;font-family: arial; font-size: 11px;">Błąd</span>' . $mail->ErrorInfo;
                else{

                    echo '<script type="text/javascript">alert("Dziękuję."); </script>';
                }
            }

ob_flush();
?>
1

kod powyzej ci w ogóle dziala??? bo includujesz biblioteke phpmailer PO jej wywolaniu, co juz wyrzuci ci bledem.

a poza tym reszta ok. moze dopatrywalbym sie gdzies w kodzia javascript ktorym zapewn zaznaczasz te checkboxy. uzyj var dump i sprawdz co zawiera zmienna

$_POST['name']

przed sprawdzeniem jakichkolwiek warunkow

dodanie znacznika <code class="php"> - furious programming

0

Tak, działa i nie wyrzuca błędów, ale to profilaktycznie poprawię. Kod javascript wydaje się być dobry i załączam go poniżej. Otrzymuję wszystkie dane oprócz tych checkboksów (tzn. dostaje z jednego), dlatego szukam źródła problemu.

<script type="text/javascript">

$(document).ready(function() {
$(".checklist input:checked").parent().addClass("selected");

$(".checklist .checkbox-select").click(
function(event) {
event.preventDefault();
$(this).parent().addClass("selected");
$(this).parent().find(":checkbox").attr("checked","checked");
}
);

$(".checklist .checkbox-deselect").click(
function(event) {
event.preventDefault();
$(this).parent().removeClass("selected");
$(this).parent().find(":checkbox").removeAttr("checked");
}
);

});
</script>
1

wywal to:

   foreach($type as $value) {
                echo $value;
                }

a wstaw w to miejsce to:

    $commaSeparated = implode(",", $type);

i do rezerwacji przypisz:

    Rezerwacja: '.$commaSeparated;

oczywiscie wczesniej sprawdz czy ta zmienna type nie jest null

0

Za chwilę wypróbuję ten sposób.

Co do includowania phpmailer po wywołaniu, to w kodzie mam jednak dobrze, a tu na forum przy wklejaniu wiersz przeskoczył mi w dół.

0

Bardzo serdecznie dziękuję za fachową odpowiedź. Po zastosowaniu sugestii udało się osiągnąć zamierzony cel, więc problem jest całkowicie rozwiązany. Skrypt funkcjonuje teraz bezproblemowo zarówno przy zastosowaniu implode jak i join.

Jeszcze raz dziękuję i życzę miłego weekendu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1