Отправка нескольких значений флажков в php электронной почте - PullRequest
0 голосов
/ 06 июля 2019

Я написал код для отправки значения нескольких выбранных флажков в массиве, но получил пустое значение в электронной почте.

Вот код, который я написал в HTMl:

<form class="form" action="#" method="POST">
      <?php if($msg!=''){?>
            <div class="alert alert-success">
            <?php echo $msg;?>
            </div>
        <?php } ?>
        <p class="form-p" type="Name:*"><input placeholder="Write your name here.." name="yourname" id="txtFirstName"></input></p>
        <p class="form-p" type="Mobile Number:*"><input placeholder="Let us know how to contact you back.." name="mobilenumber" onkeypress="return isNumber(event)"></input></p>
        <p class="form-p" type="Email"><input placeholder="What would you like to tell us.." name="email" id="email" type="email"></input><span class="msg error">Not a valid email address</span></p> 
        <p class="form-p" type="Delivery Address*"><input placeholder="Write your Address" name="address"></input></p>
        <p class="form-p" type="How Did You Hear About Us?*"></p>
        <input type="checkbox" name="hearabout[]" value="Word Of Mouth">Word of Mouth<br>
        <input type="checkbox" name="hearabout[]" value="Friend / Relative">Friend / Relative<br>
        <input type="checkbox" name="hearabout[]" value="Google Search">Google Search<br>
        <input type="checkbox" name="hearabout[]" value="Social Media">Social Media<br>
        <input type="checkbox" name="hearabout[]" value="Newspaper">Newspaper<br>
       <input type="submit" value="send" name="submit_contact" class="submit-btn">
    </form>

Ив коде Php я написал в этом формате

<?php
if(isset($_POST['submit_contact']))  
{
require 'PHPMailer/PHPMailerAutoload.php';
$to = "xxxxk@gmail.com";
$name = $_POST['yourname'];
$mobilenumber = $_POST['mobilenumber'];
$email = $_POST['email'];
$address = $_POST['address'];
$hearabout = stripslashes($_POST['hearabout']);  

$message = array();    
$message[]='Name  :  '.trim($name).' ';
$message[]='Phone  :  '.trim($mobilenumber).' ';   
$message[]='Email  :  '.trim($email).' ';    
$message[]='Address  :  '.trim($address).' ';   
$message[]='How Did You hear About This?  :  '.trim($hearabout).' '; 
$message = implode('<br/>', $message);  

$mail->Subject    = "For Booking Milk";
$mail->Body = $message;
$mail->AddAddress($to); 
}
?> 

1 Ответ

1 голос
/ 06 июля 2019

Вы отправляете массив в $_POST, а для stripslashes требуется строка для работы.Вы можете изменить его на строку, implode.Например:

// glue together each element with a comma, then strip it
$hearabout = stripslashes( implode( ', ', $_POST['hearabout'] ) );

Я все еще не уверен, почему вы используете stripslashes, но вы делаете.

...