1

私は単純なニーズを持つ単純な魂であり、フォームを構成しようとしています。私はフォームを嫌います。

データを転送するにはJavaScriptが必要であり、データを含む電子メールを電子メールアドレスに送信し、訪問者をpdfにリダイレクトする必要があります。CGIはいつも私を混乱させてきました、そして私はJavaScriptをあまり知りません。

私はすでにhtmlを実行しましたが、postアクションとJavaScriptが私を殺しています。4時間の検索です。私にフォークを刺しなさい。私はこれで終わりです。

4

3 に答える 3

1

フォームを検証してからサーバーに送信する必要があるように聞こえますが、その後再検証し (javascript は推力できません)、メール要求を電子メール サーバーに送信します。

フォームを再検証し、要求を電子メール サーバーに送信するサーバーには PHP をお勧めします。PHP は簡単で、幅広くサポートされているからです。

このHTMLがあるとします

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="script.js"></script>
<form id="emailForm" method="post" action="mail.php">
    <input type='text' name='firstName' id="firstName"><br>
    <input type='text' name='lastName' id='lastname'><br>
    <input type='submit' value='submit' name='submit'>
</form>

JavaScript と jQuery を使用して、ユーザーがすべてのフィールドに何かを入力したことを確認できます。あなたが持っているファイルscript.jsで言ってください:

var formIsOkay = true;
$(document).ready( function() {
$('#emailForm').submit( function() {
    $('#emailForm input').each( function() {
         if ( this.val() == '' ) { formIsOkay = false; }
    }
    return formIsOkay;
}
}

そして、email.php では次のようになります。

 <?php
 $to =  'email@domain.com';
 $from = 'email@domain.com';
 $subject = 'Form';
 $message = 'Hello, the following variables were supplied:<br>';
 foreach($_POST as $key => $val){
     $message .= "$key = $val<br>";
 }
 $message = wordwrap($message, 70);
 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .= "To: $to" . "\r\n";
 $headers .= "From: $from" . "\r\n";
 mail($to, $subject, $message, $headers);
 ?>

これにはサーバーで PHP を実行し、PHP で SMTP サーバーをセットアップする必要がありますが、ほとんどのサーバーにはこれがあります。ところで、PHP は現在フォームを再試行しないことに注意してください。そのため、誰かが空のフォームを送信しても、メールで送信されます。

于 2008-11-15T11:39:12.970 に答える
0

OK、まず最初に、あなたの言葉遣いを明確にする必要があります. JavaScript と Java は、大きく異なる 2 つの言語です。

メールを送信するには、SMTP サーバーと組み合わせて使用​​している言語を使用する必要があります。SMTP サーバーは、クライアント側の JavaScript ではなく、実際に電子メールを送信するものでなければなりません。

JavaScript を使用して SMTP サーバーに投稿する例は、ここにあります (ただし、ActiveX は IE 専用であるため、この方法はお勧めしません): http://www.ostrosoft.com/smtp_component/smtp_javascript.asp

最終的に JavaScript を使用する場合、使用する最善の方法は、非 SMTP サーバーに投稿してから、データを SMTP サーバーに送信することです。

実際に Java を使用している場合は、JavaMail というオプションのライブラリを追加して、メールの送信をより簡単にすることができますが、ここでも SMTP サーバーと通信する必要があります。

JavaMail の例は、 http ://www.javapractices.com/topic/TopicAction.do?Id=144 にあります。

于 2008-11-15T07:34:15.523 に答える
0

あなたのフォームは、メール送信専用に作成された FormMail フォームのように聞こえます。実際には JavaScript は必要ありませんが、確かに多数の隠しフィールドが必要であり、特に抽出したいすべての情報には独自のセクションが必要です。 /フォームのフィールド。

それで、質問は何ですか?-)

于 2008-11-15T08:57:06.073 に答える