PHP / AJAX邮件联系表单 - 未显示的电子邮件的一部分

时间:2012-08-27 04:11:59

标签: php jquery ajax email

好的,我有一个使用PHP邮寄到电子邮件地址的表单。我还有一个jQuery / AJAX部分,可以在不重新加载页面的情况下验证表单并执行PHP。出于某种原因,来自利息下拉的产品利息值不会通过电子邮件传递。我错过了什么?我一直在为此疯狂。谢谢!

这是表格:      

        <div class="contact-form">
            <div class="row">
                    <div class="field"><input type="text" id="first" name="first" class="input" placeholder="First Name"></div>
                    <div class="field"><input type="text" id="last" name="last" class="input" placeholder="Last Name"></div>
                    <div class="field"><input type="text" id="telephone" name="telephone" class="input" placeholder="Phone Number"></div>
            </div>
            <div class="row">
                    <div class="field"><input type="email" id="email" name="email" class="input" placeholder="E-mail"></div>
                    <div class="field">
                                        <select class="select" name="interest" id="interest">
                                            <optgroup label="Countwise Products:">
                                                  <option value="I-Count">I-Count</option>
                                                  <option value="Q-Count">Q-Count</option>
                                                  <option value="D-Count">D-Count</option>
                                                  <option value="Z-Count">Z-Count</option>
                                             </optgroup>
                                        </select> 
                    </div>
                    <input type="submit" value="Get Better Results!" class="button3 dark-blue submit"/>
                    <span class="error" style="display:none">All Fields Are Required!</span>
                    <span class="success" style="display:none">Contact Form Submitted Successfully</span>   
            </div>
        </div>


    </form>

这是标题为header_form_email.php的PHP

<?php

// POST Variables
//Name
$first = $_POST['first'];
$last = $_POST['last'];
//Phone
$telephone = $_POST['telephone'];
//E-mail 
$email = $_POST['email'];
//Interest
$interest= $_POST['interest'];

// Contact subject
$subject = "CountWise Website - Sales Request";

$name =  "$first" . " " . "$last";



$message = "You have received a new information request from Countwise.com\n".
"Name: " . "$name\n".
"Phone: " . "$telephone\n".
"Email: " . "$email\n".
"Product Interest: " . "$interest";

// From
$mailheader = "From: $email \r\n";

// Enter your email address
$to ="kelly@drastikdesigns.com";

$send_contact=mail($to,$subject,$message,$mailheader);

// Check, if message sent to your email
if($send_contact){
echo "<strong>We have received your information and will be in contact you shortly. Thank you.</strong>" ;
}
else {
echo "ERROR";
}
?>

这是AJAX

$(function() {
    $(".submit").click(function() {
        var first = $("#first").val();
        var last = $("#last").val();
        var telephone = $("#telephone").val();
        var email = $("#email").val();
        var interest = $("#interest").val();
        var dataString = 'first=' + first + '&last=' + last + '&telephone=' + telephone + '&email=' + email + '&interest' + interest;

        if (first == '' || last == '' || telephone == '' || email == '') {
            $('.success').fadeOut(200).hide();
            $('.error').fadeOut(200).show();
        }
        else {
            $.ajax({
                type: "POST",
                url: "http://www.drastikdesigns.com/clients/countwise/php/header_form_email.php",
                data: dataString,
                success: function() {
                    $('.success').fadeIn(200).show();
                    $('.error').fadeOut(200).hide();
                }
            });
        }
        return false;
    });
});

1 个答案:

答案 0 :(得分:4)

你忘了等于:

'&interest=' + interest;

另一方面,为什么不这样做:

data:$("#formid").serialize(),

这将为您节省大量时间和头痛。第二点,使用firebug / developers工具/ chrome在查看通过ajax发送的标头时肯定有帮助。