2016-12-14 17 views
-2

私のWebサイトの連絡フォームに別の入力フィールドを追加しようとしています。デフォルトのフォームには、名前、電子メール、メッセージフィールドがあります。私は、件名フィールドを追加しようとしています。phpメールフォームのフィールドにユーザー入力が登録されていません

問題は、件名フィールドに入力が記録されないということです。だから私は電子メールを受け取ったとき、すべてのデフォルトのフィールドが入力を正しく記録していますが、私の件名フィールドは空です。以下は

は、関連する(AJAX用)、HTML、JavaScriptとPHPのコードです:

//Listens for Submit button, prevents page refresh and calls on submitForm() 
 
$("#contactForm").submit(function(event) { 
 
    // cancels the form submission 
 
    event.preventDefault(); 
 
    submitForm(); 
 
}); 
 

 

 
//Grabs form input, and starts an ajax object 
 
function submitForm() { 
 
    // Initiate Variables With Form Content 
 
    var name = $("#name").val(); 
 
    var email = $("#email").val(); 
 
    var messagesubject = $("#messagesubject").val(); 
 
    var message = $("#message").val(); 
 

 
    //I have added "&messagesubject=" + messagesubject to the data: to get input in the subject field 
 
    $.ajax({ 
 
    type: "POST", 
 
    url: "php/form-process.php", 
 
    data: "name=" + name + "&email=" + email + "&messagesubject=" + messagesubject + "&message=" + message, 
 
    success: function(text) { 
 
     if (text == "success") { 
 
     formSuccess(); 
 
     } 
 
    } 
 
    }); 
 
} 
 

 
function formSuccess() { 
 
    $("#msgSubmit").removeClass("hidden"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.11.2/js/bootstrap-select.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet" /> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.1/css/bootstrap-select.min.css" rel="stylesheet" /> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="col-lg-6 col-xs-12"> 
 
    <div class="contact-form"> 
 
    <h3>Send us a message. We're here to help!</h3> 
 
    <form role="form" id="contactForm"> 
 
     <div class="row"> 
 
     <div class="form-group col-sm-6"> 
 
      <label for="name" class="h4">Name</label> 
 
      <input type="text" class="form-control" id="name" placeholder="Enter name" required> 
 
     </div> 
 
     <div class="form-group col-sm-6"> 
 
      <label for="email" class="h4">Email</label> 
 
      <input type="email" class="form-control" id="email" placeholder="Enter email" required> 
 
     </div> 
 
     </div> 
 
     <div class="form-group"> 
 
     <label for="messagesubject" class="h4 ">Subject</label> 
 
     <input type="messagesubject" class="form-control" placeholder="Enter Subject" required> 
 
     </div> 
 
     <div class="form-group"> 
 
     <label for="message" class="h4 ">Message</label> 
 
     <textarea id="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea> 
 
     </div> 
 
     <button type="submit" id="form-submit" class="btn btn-success btn-lg pull-right ">Submit</button> 
 
     <div id="msgSubmit" class="h3 text-center hidden">Message Submitted!</div> 
 
    </form> 
 
    </div> 
 
</div>

そして、ここではphpmailを処理し、私のメールにそのメッセージを取得するためのPHPコードです。スニペットに含めることはできませんでしたが、かなり簡単なphpmailの設定です。

<?php 
$name = $_POST["name"]; 
$email = $_POST["email"]; 
$MessageSubject = $_POST["MessageSubject"]; 
$message = $_POST["message"]; 

$EmailTo = "[email protected]"; 
$Subject = "$messagesubject from $name"; 

// prepare email body text 
$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 

$Body .= "Email: "; 
$Body .= $email; 
$Body .= "\n"; 

$Body .= "Subject: "; 
$Body .= $messagesubject; 
$Body .= "\n"; 

$Body .= "Message: "; 
$Body .= $message; 
$Body .= "\n"; 

// send email 
$success = mail($EmailTo, $Subject, $Body, .$MessageSubject "From:".$email); 

// redirect to success page 
if ($success){ 
    echo "success"; 
}else{ 
    echo "invalid"; 
} 

?> 

答えて

2

id="messagesubject"が入力フィールドにありません。

<div class="form-group"> 
    <label for="messagesubject" class="h4 ">Subject</label> 
    <input type="messagesubject" class="form-control" id="messagesubject" placeholder="Enter Subject" required> 
    </div> 
+0

doh!ありがとうございました!! – raimond

+0

ようこそ。残りは幸運です。 – Robbie

関連する問題