问题: Javascript函数(由模板预先制作)清除php发送给我的表单数据
php代码:
<?php
header('Content-type: application/json');
$status = array(
'type'=>'success',
'message'=>'GJ '
);
$name = @trim(stripslashes($_POST['name']));
$phone = @trim(stripslashes($_POST['phone']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$email_to = 'email@email.com';//replace with your email
$body = 'Name: ' . $name . "\n\n" . 'Телефон: ' . $phone . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;
$success = @mail($email_to, $subject, $body);
echo json_encode($status);
die;
javascript函数代码:
var form = $('.contact-form');
form.submit(function () {'use strict',
$this = $(this);
$.post($(this).attr('action'), function(data) {
$this.prev().text(data.message).fadeIn().delay(3000).fadeOut();
},'json');
return false;
});
当没有js代码时,php返回带有一行的白色屏幕,但@mail发送正常消息,但是当有这个代码淡入和淡出时效果很好,但数据到空了。如果重要的话,消息和名称中的消息是cyrylic。
请帮我修复它(即我需要数据到达和成功淡入出现或至少数据到达没有.php白屏)或只是解释js代码我没有得到它。 感谢
答案 0 :(得分:2)
您尚未为data
$.post
参数
尝试
var form = $('.contact-form');
form.submit(function () {'use strict',
var $this = $(this);
$.post($(this).attr('action'), $this.serialize(), function(data) {
$this.prev().text(data.message).fadeIn().delay(3000).fadeOut();
},'json');
return false;
});
参考文献:
<强> jQuery.serialize() Docs 强>