我知道这只是通过Ajax发送到php文件的简单帖子。这是我以前做过的事情,但这次肯定有一些我想念的东西。我无法弄清楚为什么我的PHP文件不会读取或回显任何发布的数据。当PHP代码与表单位于同一文件中时,它可以正常工作,但是当我将PHP文件移动到外部源时,它就不再起作用了。所有数据都显示在标题中,但未被读取。
name=Form+Name&email=myemail%40email.com&tel=2345557777&web=http%3A%2F%2Fmywebsite.com&msg=This+is+the+message Name
表单数据(回调不返回任何数据)
contact.on('submit', function(){
var contactData = contact.serialize();
console.log(contactData);
return ajaxPost('mail.php', 'POST', contactData, (data) => {
console.log(data);
// Contact form callback
alert('Thanks for contacting us!');
});
});
Ajax Post
var ajaxPost = function (x, y, z, callback){
$.ajax({
url: x,
type: y,
data: z,
// encode: true,
processData: true,
contentType: false,
dataType: 'html'
}).done(() => {
callback();
});
event.preventDefault();
};
PHP文件
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$msg = $_POST['msg'];
$web = $_POST['web'];
$admin_email = "myemail@email.com";
mail($admin_email, 'Name: ' . $name . " Email: " . $email, ' '. "Message: " . $msg . " Website: " . $web);
echo $name . $email . $tel;
<div class="form col-lg-6 col-md-6 col-sm-6 col-xs-12 text-center animated slideInDown">
<form id="contact" name="contact-form" action="" method="post" datatype="multipart/form-data">
<h3 class="text-center">Drop us a line</h3>
<fieldset>
<input placeholder="Your name" name="name" type="text" tabindex="1" required autofocus>
</fieldset>
<fieldset>
<input placeholder="Your Email Address" name="email" type="text" tabindex="2" required>
</fieldset>
<fieldset>
<input placeholder="Your Phone Number (optional)" name="tel" type="text" tabindex="3" required>
</fieldset>
<fieldset>
<input placeholder="Your Web Site (optional)" name="web" type="text" tabindex="4">
</fieldset>
<fieldset>
<textarea placeholder="Type your message here...." name="msg" tabindex="5" required></textarea>
</fieldset>
<fieldset>
<button type="submit" id="contact-submit">Submit</button>
</fieldset>
<a id='number-attn' class="glyphicon glyphicon-phone" href="tel:5555555555"> 5555555555</a>
</form>
</div>
</div>
答案 0 :(得分:0)
我仍然不确定为什么其他方式不起作用,但是我使用FormData对象获取了我的PHP文件。
{{1}}
进行此更改允许PHP脚本读取提交的表单。
答案 1 :(得分:0)
删除选项&#34; contentType:false&#34;来自ajax post。