Textarea不发送提交

时间:2013-07-10 07:45:31

标签: php forms textarea submit

Arg,这太烦人了!

我有一张带有textarea的表格。在提交时,我使用一块PHP将表单的数据发送到我的电子邮件地址。其他数据发送正常(输入)但它不发送textarea!

这是de 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;        
    });
});

我希望你能帮忙!

4 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分:0)

根据具体情况,我怀疑您在textarea上使用了像CKEdit或TinyMCE这样的富文本编辑器。

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

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

答案 2 :(得分:0)

更改以下行

data : { 'stuff':stuff, }

data : stuff

或者您可以使用

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

或者您可以尝试

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

并使用

进行检索
$_POST['name']
$_POST['email']
$_POST['comments']

答案 3 :(得分:0)

尝试使用此代码,

<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");



?>

您需要在双引号中添加整个内容。我测试了它,它工作正常。