簡體   English   中英

將多個復選框值傳遞給 PHP 郵件

[英]Pass multiple checkbox values to PHP Mail

我正在嘗試將復選框值傳遞給 PHP 但興趣字段顯示為空白。 我需要顯示所有檢查的興趣值。 並發出一個 email。 我已經包括了所有三個部分。 所有其他字段都正確顯示。

這是 HTML 部分

                            <form id="register-form" class="register-form register" action="php/register.php" method="post">
                                
                    
                                <input class="register-input name-input white-input" required="" name="register_names" placeholder="Full Name*" type="text">
                                
                                <input class="register-input name-email white-input" required="" name="register_phone" placeholder="Phone*" type="text">
                            
                                <input class="register-input name-email white-input" required="" name="register_email" placeholder="Email Adress*" type="email">
                                
                                <input class="register-input name-email white-input"  name="register_company" placeholder="Company" type="text">
                                
                                <table cellspacing="8" cellpadding="0">
                                    <tr>
                                        <td><input class="register-input name-email white-input" name="register_city" placeholder="City" type="text"></td>
                                        <td width="10">&nbsp;</td>
                                        <td><input class="register-input name-email white-input" name="register_zip" placeholder="Zip" type="text"></td>
                                    </tr>
                                </table>
                                
                                <table cellspacing="8" cellpadding="8">
                                    
                                    <tr><fieldset>
                                        <td>
                                            <input type="checkbox" name="interests[]" value="Practice" />&nbsp;&nbsp;Practice<br />
                                            <input type="checkbox" name="interests[]" value="Training" />&nbsp;&nbsp;Training<br />
                                            <input type="checkbox" name="interests[]" value="Workout" />&nbsp;&nbsp;Workout<br />
                                            
                                        </td>
                                        </fieldset>
                                    </tr>
                                    
                                </table>
                               
                                <input value="Submit Request" class="register-submit" type="submit">
                                    
                            </form>

這是用於驗證的 JQuery 部分

    $('#register-form').each( function(){
        var form = $(this);
        //form.validate();
        form.submit(function(e) {
            if (!e.isDefaultPrevented()) {
                jQuery.post(this.action,{
                    'names':$('input[name="register_names"]').val(),
                    'email':$('input[name="register_email"]').val(),
                    'phone':$('input[name="register_phone"]').val(),
                    'company':$('input[name="register_company"]').val(),
                    'city':$('input[name="register_city"]').val(),
                    'zip':$('input[name="register_zip"]').val(),
                    'interests':$('checkbox[name="interests"]').val(),
                },function(data){
                    form.fadeOut('fast', function() {
                        $(this).siblings('p.register_success_box').show();
                    });
                });
                e.preventDefault();
            }
        });
    })

最后,這是生成 email 的 PHP 部分

<?php

$field_first_name = $_POST['names'];

$field_email = $_POST['email'];

$field_phone = $_POST['phone'];

$field_company = $_POST['company'];

$field_city = $_POST['city'];

$field_zip = $_POST['zip'];

$interests = (is_array($_POST['interests']) ? $_POST['interests'] : []);
$interests = (count($interests) > 0 ? implode(',', $interests) : 'none');


$mail_to = 'to@email.com';

$subject = 'Message from a landing page visitor '.$field_first_name;

$body_message = 'From: '.$field_first_name."\n";

$body_message .= 'E-mail: '.$field_email."\n";

$body_message .= 'Phone: '.$field_phone."\n";

$body_message .= 'Company: '.$field_company."\n";

$body_message .= 'City: '.$field_city."\n";

$body_message .= 'Zip: '.$field_zip."\n";

$body_message .= 'Interests:  '.trim($interests).' ';


$headers = 'From: '.$field_email."\r\n";

$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);


if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">


----------


        window.location = 'index.html';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        window.location = 'index.html';
    </script>
<?php
}
?>

我在下面的 php 代碼中發現了錯誤:

$interests = (is_array($_POST['interests']) ? $_POST['interests'] : []);

$interests = (count($interests) > 0 ? implode(',', $interests) : 'none');

如果你得到任何復選框值,它並沒有直接帶有數組格式,所以這就是這個條件不正確的原因。

你必須做這樣的事情:

$interests = $_POST['interests']!='' ? $_POST['interests'] : '');

$interests = ($interests!='' ? implode(',', $interests) : 'none');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM