0

Arg,这太烦人了!

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

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

4 回答 4

1

试试这个

<?php
    mail("name@myemailadress.nl", "Website formulier", $_POST['name'], $_POST['email'], $_POST['comments']);
?>
于 2013-07-10T07:55:19.990 回答
0

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

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

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

于 2013-07-10T08:30:26.483 回答
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']
于 2013-07-10T08:35:30.443 回答
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");



?>

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

于 2013-07-10T08:52:56.427 回答