如何通过AJAX发送外部表单POST数据

时间:2014-02-03 20:36:31

标签: php ajax

我有一个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>";       
    }
?> 

1 个答案:

答案 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);
        }
    });
  });
});