Textarea不发送提交

Arg, this is so annoying!

I've got a form with a textarea. On submit I use a piece of php to send the data of the form to my email adress. The other data is sending fine (input) but it doesn't send the textarea along!

This is de PHP:

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

This is the code:

<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>

This is the code that changes the state of the submit button for 3 seconds (message send confirmation) and triggers the 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;        
    });
});

I hope you can help!

dounei9043
dounei9043 我正在使用textwrangler作为文本编辑器。我编写这些东西并不是那么好。我唯一想要的是将这些数据发送到我的邮件地址。如果您知道更好的方法,请分享:)
大约 7 年之前 回复
dougui1977
dougui1977 它发生了,欢迎:-)
大约 7 年之前 回复
douzhi3105
douzhi3105 啊,没看到,谢谢。
大约 7 年之前 回复
doujian1050
doujian1050 您是否在textarea中使用富文本编辑器?如果是这样,哪一个?
大约 7 年之前 回复
dqkmn26444
dqkmn26444 什么是parse_str($_POST['stuff']);这里?
大约 7 年之前 回复
duangang1991
duangang1991 serialize()准备一个查询字符串。
大约 7 年之前 回复
dqo88037
dqo88037 你确定其他领域正在发送吗?parse_str只能用于查询字符串格式的事情...
大约 7 年之前 回复
douhang8991
douhang8991 你需要将textarea值分配给$comments。$comments=$_POST['comments']
大约 7 年之前 回复
douzhao4071
douzhao4071 textarea在哪里!
大约 7 年之前 回复
dqppv86022
dqppv86022 您是否期望文本区域内容在PHP中作为$comments自动提供?
大约 7 年之前 回复
doudaochu1699
doudaochu1699 那么你在哪里收到textarea内容?显示一些代码。
大约 7 年之前 回复

4个回答

Try this code it works,

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



?>

You need to add entire contents in double quotes. I have tested it, it works fine.

duanruoyu6675
duanruoyu6675 很高兴你明白了!!
大约 7 年之前 回复
dongliuliu0385
dongliuliu0385 YEAH! 那太棒了!
大约 7 年之前 回复

Try this instead

<?php
    mail("name@myemailadress.nl", "Website formulier", $_POST['name'], $_POST['email'], $_POST['comments']);
?>
doucang8303
doucang8303 那么,我的php应该如何能够发送'评论'以及'姓名'和'电子邮件'?
大约 7 年之前 回复
dtkz3186
dtkz3186 更正,查询字符串格式内容,而不是数组内容。
大约 7 年之前 回复
dqk42179
dqk42179 这没有用。 正如您应该注意到的,他正在使用名为parse_str()的名称,它将所有数组内容转储到本地命名空间变量中。
大约 7 年之前 回复



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

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

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

展开原文

原文

Based on the circumstances, I suspect you are using a rich text editor like CKEdit or TinyMCE on your textarea.

If such is the case, you should know that these editors do not directly influence the textarea's text, and you must call a special editor-specific method to update it's contents. This method is called automatically on form submit, but for serializing and submitting forms via ajax it is not as straightforward.

If this is the case, please let me know which editor you are using and I can tell you how to correctly prepare the textarea for serialization.

dsb53973
dsb53973 不完全的。 TextWrangler是您编辑源代码的程序,对吧? 我指的是你附加到textarea的任何JS文本插件,它们使编辑注释更容易。 有吗?
大约 7 年之前 回复
douhulao7642
douhulao7642 我正在使用TextWrangler ...希望有帮助!?
大约 7 年之前 回复



更改以下行</ p>

  data:{'stuff':stuff,} \  n </ code> </ pre> 

</ p>

  data:stuff 
</ code> </ pre>

或者您可以使用</ p>

 数据:$('#form')。serialize(); 
</ code> </ pre>

或者您可以尝试</ p>

  data:{
'name':$('#name')。val(),
'email':$('#email ')。val(),
'comments':$('#ber​​icht')。val()
}
</ code> </ pre>

并使用</ p检索 >

  $ _ POST ['name'] 
$ _POST ['email']
$ _POST ['comments']
</ code> </ pre>
</ DIV>

展开原文

原文

Change following line

data : { 'stuff':stuff, }

to

data : stuff

or you can use

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

or you may try

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

and retrieve using

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

douba1214
douba1214 我尝试了这些可能性,但没有一个工作。
大约 7 年之前 回复
doulupian8725
doulupian8725 Quote:'其他数据发送正常'。
大约 7 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问