[英]Text area in my php contact form won't work (send)
在嘗試一些不同的教程和論壇主題之后,我已經嘗試了一段時間。 看起來很簡單,但我只是無法從textarea獲取任何數據。 輸入類型“名稱”和“郵件”沒問題,可以正常工作。 我將在下面粘貼我的PHP編碼和表單。 任何幫助將非常感激。 謝謝。
<section id="forma" >
<div class="container">
<div class="row">
<div class="col-md-12 text-center">
<form action="send.php" method="post" enctype="multipart/form-data" id="form_page">
<input type="text" name="name" placeholder="Name" required>
<input type="email" name="mail" placeholder="E-mail" required>
<textarea name="comment" id="comment" style="margin: 0px 15px -33px 0px; width: 307px; height: 66px;"></textarea><br>
<label class="uploadbutton">
<div class="button" ></div>
<div class='input'></div>
<input type="file" name="file" onchange="this.previousSibling.previousSibling.innerHTML = this.value"/>
</label>
<button type="submit" class="btn btn2"></button>
</form>
</div>
</div>
</div>
</section>
p
<?php
require_once('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->CharSet = 'utf-8';
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['mail'];
$text = $_POST['message'];
$comment = $_POST['comment'];
echo $comment;
$mail->SMTPDebug = 3;
//$mail->isSMTP();
//$mail->Host = '';
//$mail->SMTPAuth = true;
//$mail->Username = '';
//$mail->Password = '';
//$mail->SMTPSecure = 'ssl';
//$mail->Port = 587;
$mail->setFrom('');
$mail->addAddress('');
//$mail->addAddress('');
//$mail->addReplyTo('', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');
//$mail->addAttachment('/var/tmp/file.tar.gz');
$mail->isHTML(true);
if(isset($_FILES['file']))
$mail->addAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']); // Optional name$mail->isHTML(true);
$mail->Subject = '';
$mail->Body = '' .$name . ' ,' .$comment. '<br>: ' .$email.'<br>' .$text;
$mail->AltBody = '';
if(!$mail->send()) {
echo 'Error';
} else {
header('location: thank-you.html');
}
?>
JS
<script>
$ ('form').submit(function(event) {
event.preventDefault();
var data = new FormData();
data.append('name', $(this).find('input[name=\'name\']').val());
data.append('phone', $(this).find('input[name=\'phone\']').val());
data.append('mail', $(this).find('input[name=\'mail\']').val());
data.append('comment',$('#comment').val());
if($(this).attr('id') == 'form_page')
data.append('file', $(this).find('input[name=\'file\']')[0].files[0])
$.ajax({
type: "POST",
url: "send.php",
data: data,
cache: false,
contentType: false,
processData: false,
success: (function(data) {
$(this).find("input").val("");
$('#modal').modal('hide');
$('#modal1').modal('show');
$("form").trigger("reset");
})
});
return false;
});
</script>
你的錯是在PHP代碼:
更換:
$comment = $_POST['comment']);
與:
$comment = $_POST['comment'];
刪除多余的支架
在js文件中用$('#comment')。val()替換$(this).find('input [name = \\'comment \\']')。val(),因為您使用的是textarea輸入選擇器,為獲得textarea價值而工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.