不要得到整个$ _POST

时间:2015-03-20 08:59:13

标签: php jquery html ajax

当我点击submit按钮时,它应该为我的发送页面提供$_POST

我的工作是:

- &GT;点击<input type="submit" name="sendMail" value="Verzend E-Mail" class="sendMail">时点击 - &GT;我创建了一个var link并在其中设置了整个<form action="" method="post" id="formSendMail"> - &GT;然后将$.ajax()请求link作为数据提供给我发送到的页面 - &GT;当.done(function(data))将数据放入$("div.emailSendComplete")

所以现在你知道我非常想要的......

到目前为止我所拥有的代码是:

Jquery:
<script>
  $(document).ready(function(){
    $("input.sendMail").on("click", function(){
        var link = $("form#sendMailForm");
        $.ajax({
            type: "POST",
            url: "checklistHandler.php?action=sendMail",
            data: link
        }).done(function (data){
            $("div.emailSendComplete").append(data);
        });
    });
  });
</script>

HTML:
<table id="cont" style="line-height: 80px; text-align: center;">
<tr id="sendMail" style="">
    <form action="checklistHandler.php" method="post" id="sendMailForm">
        <td style="width: 150px;">Email:</td>
        <td>
            <input style="padding: 5px; text-align: center; min-width: 10px; border-radius: 3px;" id="email" type="text" name="email" id="email" value="<?= $email ?>">
            <span class="emailCheck"></span>
        </td>
        <td style="position: relative; left: 50px;">
            <input type="hidden" name="verzendMail" value="1">
            <input type="submit" name="sendMail" value="Verstuur E-Mail" class="sendMail" style="border-radius: 3px;">
        </td>
    </form>
</tr>

PHP(checklistHandler.php):
if ($_GET['action'] == 'sendMail') {
   print_r($_POST);
   exit();
}

4 个答案:

答案 0 :(得分:1)

解决:

我确实试图给出整个POST,但我也只能给INPUT提供电子邮件。 因为我只需要那个。

答案 1 :(得分:0)

您是否尝试发送表单的HTML?如果是这样,而不是:

var link = $("form#formSendMail");

(那将返回一个jquery对象,除非我错了)

使用它:

var link = $("#formSendMail").html();

不完全清楚你要做什么,所以我可能会误解......

答案 2 :(得分:0)

这里有 two 三个问题:

  • 您没有取消默认表单提交,因此您的表单也会以正常方式提交,您的页面也会刷新;
  • 您没有使用ajax调用向脚本发送任何数据,只是jQuery对象,表单;
  • 您的表单与您在ajax电话中使用的ID不同:formSendMail vs sendMailForm

看起来应该或多或少:

$(document).ready(function(){
  $("input.sendMail").on("click", function(event){
                                           ^^^^^ you need this later on

    // second and third problem, missing data and wrong ID
    var link = $("form#sendMailForm").serialize();
                       ^^^^^^^^^^^^ use the right ID here

    // first problem, default submit
    event.preventDefault();

    // the rest of your code

答案 3 :(得分:0)

您需要在代码中更改一些内容

$(document).ready(function(){
    //instead of input button click use form
    $("#sendMailForm").submit(function(e){
        // first problem, prevent default submit
        e.preventDefault();
        var link = $('#sendMailForm').serialize();
        $.ajax({
            type: "POST",
            url: "checklistHandler.php?action=sendMail&email=",
            data: link
        }).done(function (data){
            $("div.emailSendComplete").append(data);
        });
    });
  });