在PHP表单中添加变量时出现问题


Trouble adding variables in PHP Form

我对PHP完全陌生,如果这是一个非常明显的问题,我很抱歉。我遇到的问题是,我想创建一个表格,收集一些比传统的"名称"、"电子邮件"answers"消息"更多的细节。

具体来说,我希望有以下标签;

(i) 你会出席吗(ii)您的姓名(iii)您的电子邮件(iv)客人姓名(v) 消息

以下是我目前拥有的

<form name="sentMessage" id="contactForm" novalidate>
<div class="row control-group">
                            <div class="form-group col-xs-12 floating-label-form-group controls">
                                <label>Attendance</label>
                                <input type="text" class="form-control" placeholder="Will you be attending?" id="going" required data-validation-required-message="Please type [Yes] or [No]">
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                        <div class="row control-group">
                            <div class="form-group col-xs-12 floating-label-form-group controls">
                                <label>Your Name</label>
                                <input type="text" class="form-control" placeholder="Your name" id="name" required data-validation-required-message="Please enter your name.">
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                        <div class="row control-group">
                            <div class="form-group col-xs-12 floating-label-form-group controls">
                                <label>Email Address</label>
                                <input type="email" class="form-control" placeholder="Your email Address" id="email" required data-validation-required-message="Please enter your email address.">
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                        <div class="row control-group">
                            <div class="form-group col-xs-12 floating-label-form-group controls">
                                <label>Your Name</label>
                                <input type="text" class="form-control" placeholder="Your guests name" id="guest" required data-validation-required-message="Please enter your guests name. Type 'none' if none.">
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                        <div class="row control-group">
                            <div class="form-group col-xs-12 floating-label-form-group controls" id="message">
                                <label>Any dietary requirements</label>
                                <textarea rows="5" class="form-control" placeholder="Have you any dietary requirements?" id="message" required data-validation-required-message="Please enter a message."></textarea>
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                        <br>
                        <div id="success"></div>
                        <div class="row">
                            <div class="form-group col-xs-12">
                                <button type="submit" class="btn btn-outline-dark">SEND YOUR REPLY</button>
                            </div>
                        </div>
                    </form>

和PHP

$name = $_POST['name'];
$email_address = $_POST['email'];
$guestname = $_POST['guestname'];
$message = $_POST['message'];

和JS

$(function() {
$("#contactForm input,#contactForm textarea").jqBootstrapValidation({
    preventSubmit: true,
    submitError: function($form, event, errors) {
        // additional error messages or events
    },
    submitSuccess: function($form, event) {
        event.preventDefault(); // prevent default submit behaviour
        // get values from FORM
        var name = $("input#name").val();
        var email = $("input#email").val();
        var phone = $("input#phone").val();
        var message = $("textarea#message").val();
        var firstName = name; // For Success/Failure Message
        // Check for white space in name for Success/Fail message
        if (firstName.indexOf(' ') >= 0) {
            firstName = name.split(' ').slice(0, -1).join(' ');
        }
        $.ajax({
            url: "contact_me.php",
            type: "POST",
            data: {
                name: name,
                phone: phone,
                email: email,
                message: message
            },
            cache: false,
            success: function() {
                // Success message
                $('#success').html("<div class='alert alert-    success'>");
                $('#success > .alert-success').html("<button     type='button' class='close' data-dismiss='alert' aria-    hidden='true'>&times;")
                    .append("</button>");
                $('#success > .alert-success')
                    .append("<strong>Your message has been sent. </strong>");
                $('#success > .alert-success')
                    .append('</div>');
                //clear all fields
                $('#contactForm').trigger("reset");
            },
            error: function() {
                // Fail message
                $('#success').html("<div class='alert alert-danger'>");
                $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                    .append("</button>");
                $('#success > .alert-danger').append("<strong>Sorry " +      firstName + ", it seems that my mail server is not responding. Please try again later!");
                $('#success > .alert-danger').append('</div>');
                //clear all fields
                $('#contactForm').trigger("reset");
            },
        })
    },
    filter: function() {
        return $(this).is(":visible");
    },
});
$("a[data-toggle='"tab'"]").click(function(e) {
    e.preventDefault();
    $(this).tab("show");
});

});

/*When clicking on Full hide fail/success boxes */
$('#name').focus(function() {
$('#success').html('');
});

当我提交表格时,我会收到姓名、电子邮件和信息,但我缺少"客人姓名"answers"你会参加吗"的详细信息

你知道我做错了什么吗?

(您已经为来宾名称创建了一个类型

$guestname = $_POST['guest'];

然后你没有告诉我们你是如何检查"你会参加吗,所以我想

$attending = $_POST['going'];

我可以在您提交给我们的代码中看到至少两个明显的错误。首先,

$guestname = $_POST['guestname']

您的HTML表单输入有

id="guest"

而不是"guestname"。更改任一项,使其匹配。

并且您的php代码缺少id="going"POST

因此它应该是:

$name = $_POST['name'];
$email_address = $_POST['email'];
$guestname = $_POST['guest'];
$message = $_POST['message'];
$isAttending = $_POST['going'] /* $isAttending or something along those lines */