4

JavaScript ハイパーリンク ボタンを使用してデータを PHP フォームの電子メール スクリプトに投稿するのに問題があります。私はいくつかの異なる方法でそれを試みましたが、何もうまくいかないようです。どんな助けでも大歓迎です。ありがとうございました。

私のフォームコード:

<form id="form" action="contactform.php" method="POST" enctype="text/plain" >
      <fieldset>
        <label><strong>Your Name:</strong><input id="name" type="text" name="name">       </label>
        <label><strong>Your Phone Number:</strong><input id="phone" type="text" name="phone"></label>
        <label><strong>Your E-mail:</strong><input id="email" type="text" name="email"></label>
        <label><strong>Your Message:</strong><textarea id="message" name="message"></textarea></label>
        <div class="btns"><a href="contacts.html" class="button">Clear</a><a href="#" onclick="document.getElementById('form').submit();" class="button">Send</a></div>
      </fieldset>  
    </form>

Contactform.php:

<?php

    var_dump($_POST);

    if (isset($_POST['form'])) {


    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $visitor_email = $_POST['email'];
    $message = $_POST['message'];


    $email_from = 'emailaddress@gmail.com';
    $email_subject = "Contact Form Submission";
    $email_body = "Name: $name\n" . "Phone: $phone\n" . "Messge: $message";


    $to= 'emailaddress@gmail.com';
    $headers= "From: $email_from \r\n";
    $headers.= "Reply-To: $visitor_email \r\n";
    mail($to,$email_subject,$email_body,$headers);

    echo "Thank you for your interest. I will contact you shortly.";

    }else{
    echo "It didn't work.";
    }


    ?>

また、デバッグ目的でのみ、php の先頭に var_dump があります。最終的なコードの一部にはなりません。

4

5 に答える 5

8

form タグから削除enctype="text/plain"します。PHP はサポートしていません。

参照: method="post" enctype="text/plain" は互換性がありませんか?

于 2013-04-05T03:53:02.253 に答える
1

これがあなたの質問に答えないことはわかっていますが、HTML入力要素がこれらの機能の両方を自動的に処理するため、この目的で(上記の例で)Javascriptを使用する理由はありません.

<input type="reset" value="Clear" />
<input type="submit" value="Send" />

私はデータを検証するためにこのようなことをするだけで作業しonsubmit、フォームのアクションを使用します (検証が失敗した場合は false を返します)。

于 2013-04-05T03:53:30.730 に答える
1

a以下のようにタグを置き換えるだけです。

<a href="Javascript:void(0);" 

そして交換もdocument.forms["myForm"].submit();

フォームに追加name="myForm"します。

完全なコード

<form id="form" action="contactform.php" method="POST" name="myForm">
    <fieldset>
        <label><strong>Your Name:</strong><input id="name" type="text" name="name">       </label>
        <label><strong>Your Phone Number:</strong><input id="phone" type="text" name="phone"></label>
        <label><strong>Your E-mail:</strong><input id="email" type="text" name="email"></label>
        <label><strong>Your Message:</strong><textarea id="message" name="message"></textarea></label>
        <div class="btns">
            <a href="contacts.html" class="button">Clear</a>
            <a href="Javascript:void(0)" onclick="document.forms['myForm'].submit();" class="button">Send</a></div>
    </fieldset>  
</form>
于 2013-04-05T03:47:42.700 に答える
0

これはうまくいきます:

<a href="#" onclick="document.form.submit();" class="button">Send</a>

する必要はありませんgetElementById。単にこの方法で参照できます。

于 2013-04-05T03:51:43.197 に答える