【问题标题】:Textarea not sending on submitTextarea 未在提交时发送
【发布时间】:2013-07-10 07:45:31
【问题描述】:

Arg,这太烦人了!

我有一个带有文本区域的表单。在提交时,我使用一段 php 将表单的数据发送到我的电子邮件地址。其他数据发送正常(输入),但它没有发送 textarea!

这是PHP:

parse_str($_POST['stuff']);
mail("name@myemailadress.nl", "Website formulier", $name, $email, $comments);

这是代码:

<form class="form" id="form" action="" method="POST" >
    <p class="name">
        <input type="text" name="name" id="name" placeholder="NAAM" >
    </p>
    <p class="email">
        <input type="text" name="email" id="email" placeholder="E-MAILADRES" >
    </p>    
    <p class="text">
        <textarea name="comments" id="bericht" placeholder="BERICHT" ></textarea>
    </p>
    <p class="submit">
        <input type="submit" id="versturen_knop" class="submitBtn" value="VERSTUREN" >
    </p>
</form>

这是更改提交按钮状态 3 秒(消息发送确认)并触发 PHP 的代码

$(document).ready(function(){
    $('#form').submit(function(event){
        $('.submitBtn').attr('value','BERICHT VERSTUURD!');
        setTimeout(function(){
            $('.submitBtn').attr('value','VERSTUREN');
        }, 2000);
        var stuff = $('#form').serialize();
        jQuery.ajax({
            type: 'POST',
            url: 'mail.php', 
            data:{ 'stuff':stuff, }
        });
        //Prevents form submission
        return false;        
    });
});

希望你能帮上忙!

【问题讨论】:

  • 那么您在哪里收到您的 textarea 内容?显示一些代码。
  • 您希望文本区域的内容在 PHP 中作为 $cmets 自动提供吗?
  • 茶区在哪里!
  • @JohnVanDeWeghe, serialize() 准备一个查询字符串。
  • @SheikhHeera 啊,没看到,谢谢。

标签: php forms textarea submit


【解决方案1】:

试试这个

<?php
    mail("name@myemailadress.nl", "Website formulier", $_POST['name'], $_POST['email'], $_POST['comments']);
?>

【讨论】:

  • 这无济于事。正如你应该注意到的,他使用了可笑的名字parse_str(),它将所有数组内容转储到本地命名空间变量中。
  • 更正,查询字符串格式内容,不是数组内容。
  • 那么,我的 php 应该如何发送 'cmets' 以及 'name' 和 'email'?
【解决方案2】:

试试这个代码,它可以工作,

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<form class="form" id="form" action="" method="POST" >

            <p class="name">
            <input type="text" name="name" id="name" placeholder="NAAM" >
            </p>

            <p class="email">
            <input type="text" name="email" id="email" placeholder="E-MAILADRES" >
            </p>    

            <p class="text">
            <textarea name="comments" id="comments" placeholder="BERICHT" ></textarea>
            </p>

            <p class="submit">
            <input type="submit" id="versturen_knop" class="submitBtn" value="VERSTUREN" >
            </p>
            </form>
        <script>    

            $(document).ready(function(){
$('#form').submit(function(event){
    $('.submitBtn').attr('value','BERICHT VERSTUURD!');

    setTimeout(function(){
        $('.submitBtn').attr('value','VERSTUREN');
    }, 2000);

    //var stuff = $('#form').serialize();

    jQuery.ajax({
        type: 'POST',
        url: 'mail.php', 
        data : $('#form').serialize(),
        dataType: "json"
    });

    //Prevents form submission
    return false;        
});
});

</script>



<?php
parse_str($_POST['stuff']);

mail("aa@ss.com", "Website formulier", "$name, $email, $comments");



?>

您需要在双引号中添加整个内容。我已经测试过了,效果很好。

【讨论】:

    【解决方案3】:

    根据情况,我怀疑您在 textarea 上使用了 CKEdit 或 TinyMCE 等富文本编辑器。

    如果是这种情况,您应该知道这些编辑器不会直接影响 textarea 的文本,并且您必须调用特定于编辑器的特殊方法来更新其内容。此方法在表单提交时自动调用,但对于通过 ajax 序列化和提交表单而言,它并不那么简单。

    如果是这种情况,请告诉我您使用的是哪个编辑器,我可以告诉您如何正确准备 textarea 以进行序列化。

    【讨论】:

    • 我正在使用 TextWrangler...希望对您有所帮助!?
    • @user1737979 不完全是。 TextWrangler 是您在其中编辑源代码的程序,对吗?我指的是您附加到 textarea 的任何 JS 文本插件,它们使编辑 cmets 更容易。有吗?
    【解决方案4】:

    更改以下行

    data : { 'stuff':stuff, }
    

    data : stuff
    

    或者你可以使用

    data : $('#form').serialize();
    

    或者你可以试试

    data : {
        'name' : $('#name').val(),
        'email' : $('#email').val(),
        'comments' : $('#bericht').val()
    }
    

    并使用检索

    $_POST['name']
    $_POST['email']
    $_POST['comments']
    

    【讨论】:

    • 引用:'其他数据发送正常'。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    相关资源
    最近更新 更多