非常新,所以抱歉,我的问题是基本的,但它难住了我几个小时。
我有一个联系人表单,它使用一点AJAX POST到我的PHP文件。我遇到的问题是,当我试图让PHP通过电子邮件发送数据给我自己时,它没有读取POST值。当我在没有JS/AJAX post方法的情况下测试PHP时,它正在工作,但是为了停止页面刷新,我使用了AJAX选项。现在我已经添加了ajax,电子邮件结果没有显示数据(我可以检查并看到表单数据被填充,只是不清楚为什么它不填充在电子邮件):
Name:
Email:
Message:
关于为什么我的邮件服务器只接收文本而不接收POST的任何指导
开放,
<form data-parsley-validate action="./assets/contactform.php" method="POST">
<div class="formRow">
<label for="name" class="obscure">Name</label>
<input type="text" name="nameInput" id="name" placeholder="Name" required data-parsley-error-message="Please enter your name"></input>
</div>
<div class="formRow">
<label for="email" class="obscure">Email</label>
<input name="emailInput" id="email" type="email" placeholder="Email" required data-parsley-error-message="Please enter a valid email address"></input>
</div>
<div class="formRow">
<label for="message" class="obscure">Message</label>
<textarea name="messageInput" id="message">Message</textarea>
</div>
<input type="submit" name="submit"></input>
PHP脚本:<?php
$to = 'hello@kymlangford.com';
$subject = 'Post from your website';
$message = "Name: " . $_POST['nameInput'] . "'n Email: " . $_POST['emailInput'] . "'n Message: " . $_POST['messageInput'];
$headers = 'From: hello@kymlangford.com' . "'r'n" .
'Reply-To: ' . $_POST['emailInput'] . "'r'n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
exit;
?>
$(函数(){
$.ajax({ type: 'POST', url: './assets/contactform.php', data: { name : $('input[name=nameInput]').val(), email : $('input[name=emailInput]').val(), message : $('textarea[name=messageInput]').val() }, dataType: 'json' }) event.preventDefault();
});
});
——更新08/07/2014
下面是解决我的问题的jquery代码
// get the data from the form
$('form').submit(function(event){
var fdata = $(this).serializeArray();
fdata.push({ name: 'submit', value: true });
$.post('./assets/contactform.php', fdata, function (data) {
alert('Data Loaded:' + data); });
console.log(fdata);
event.preventDefault();
});
});
我认为你可以使用jquery,就像ajax一样。
下面是HTML代码
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
$('#submit').click(function(){
$.post("sendemail.php", $("#contactform").serialize(), function(response)
{
$('#message').html(response);
});
return false;
});
});
</script>
</head>
<body>
<p>
<form action="" method="post" id="contactform" >
<label for="name">Name:</label><br />
<input type="text" name="name" id="name" /><br />
<label for="email">Email:</label><br />
<input type="text" name="email" id="email" /><br />
<label for="emailcontent">Email Content:</label><br />
<textarea name="emailcontent" id="emailcontent"></textarea><br />
<input type="button" value="Send Email" id="submit" /><div id="message"> </div>
</form>
</p>
</body>
</html>
这是PHP代码,保存为' sendmail . PHP ' filename
$name = $_POST['name'];
$email = $_POST['email'];
$emailcontent = $_POST['emailcontent'];
$to = 'youremail@domain.com';
$subject = 'the subject';
$emailcontent = 'FROM: '.$name.' Email: '.$email.'Content: '.$emailcontent;
$headers = 'From: youremail@domain.com' . "'r'n";
mail($to, $subject, $message, $headers);
echo "Your email was sent!";