0

Arg、これはとても迷惑です!

テキストエリアのあるフォームがあります。送信時に、PHP を使用してフォームのデータをメール アドレスに送信します。他のデータは正常に送信されていますが (入力)、テキストエリアは送信されません!

これは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

このコードを試してみてください。

<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 に答える
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

状況に基づいて、テキストエリアで CKEdit や TinyMCE などのリッチ テキスト エディターを使用していると思われます。

そのような場合、これらのエディターはテキストエリアのテキストに直接影響を与えないことを知っておく必要があります。その内容を更新するには、特別なエディター固有のメソッドを呼び出す必要があります。このメソッドはフォームの送信時に自動的に呼び出されますが、フォームをシリアライズして ajax 経由で送信する場合は、それほど簡単ではありません。

その場合は、使用しているエディターをお知らせください。シリアル化のためにテキストエリアを正しく準備する方法をお伝えできます。

于 2013-07-10T08:30:26.483 に答える