我有一个Web表单,简单的HTML / PHP本身可以工作但是当它通过下面的AJAX调用传递到模板页面时 - 提交时缺少发布数据。这个HAS必须是我在下面遗漏的一个参数。
$(document).ready(function() {
$('#toggle3').click(function(){
var tog = $('.toggle');
$.ajax({
type: 'POST',
url: '/mysimplewebform.php',
success: function (fields){
tog.html(fields);
tog.slideToggle(1000);
}
});
});
});
发送请求。提交后,我收到电子邮件,除了通过表单选择的帖子数据之外的所有内容都会发送下面是PHP。
<?php
$backwheel = $_POST['backwheel'];
$frontwheel = $_POST['frontwheel'];
$form_message = "backwheel:".$backwheel." frontwheel:".$frontwheel." \nMessage: ". " You just recieved a new custom order via your Customizer!"."\nFullCustomURL: ".$_SERVER['HTTP_REFERER'];
mail("email@gmail.com", "Your Website Something", $form_message, "From: Capn Ron (New Order!)" );
if (isset($_POST['submit']))
{
echo "<script>
alert('Thanks for your Order!');
window.location.href='http://www.website.com';
</script>";
}
?>
答案 0 :(得分:0)
你没有错过一个参数。从您的代码开始,#toggle3似乎是按钮,因为click事件已绑定到它。因此,如果您尝试序列化它,它肯定不会返回任何内容。您必须序列化周围的表单,这可以通过使用jQuery的closest()
函数轻松实现;即:
$(document).ready(function() {
$('#toggle3').click(function(){
var tog = $('.toggle');
$.ajax({
type: 'POST',
url: '/mysimplewebform.php',
data: $(this).closest('form').serialize(),
success: function (fields){
tog.html(fields);
tog.slideToggle(1000);
}
});
});
});