1

その内容がJavaScriptによって生成されるdivがあります。divの内容をメールで送信できるかどうか疑問に思いました。また、JavaScriptで可能ですか、それともPHPで実行する必要がありますか?

4

3 に答える 3

1

ブラウザのJavaScriptから直接メールを送信することはできません。情報をサーバー側(PHPなど)のファイルに送信する必要があります。

を使用してこれを行うことができformますが、フォームフィールドが必要です。

の場合はdiv、JavaScriptを使用する必要があります。(AJAXを使用して)リクエストを送信できます。または、情報が短く、機密性が低い場合は、メール送信を行うPHPページに移動して、URL文字列に情報を追加できます。

これは、コードの非常に簡単なモックアップです。実際には、入力をフィルタリングし、クリーンなコードなどを作成する必要があります。

Javascript:

window.location.href= "http://www.myDomain.com/email.php?data=" + theData ;

ここで、http://www.myDomain.com/email.phpはphpファイルのURLであり、theDataはdivのコンテンツを含む変数です。

PHP

<?php
  mail("me@myDomain.com", "Content of div", $_GET['data']);  // arguments are: to, subject, body
?>

$ _GET ['data']は、上記のJavaScriptによって送信されるコンテンツです。

divコンテンツを変数theDataに取得するためのJavaScriptを含めていません

于 2012-10-03T09:58:57.193 に答える
1

単一のテキストエリアで非表示のフォームを作成し、formメソッドをPOSTに設定し、アクションを「mailto:; subject:」として送信してから送信します。フォームの内容、つまりテキスト領域のDIVの内容は、電子メールとして送信される本文の一部になり、マシンのデフォルトの電子メールクライアントが開かれて、実際にメールが送信されます。

于 2012-10-03T09:59:14.007 に答える
1

JavaScriptには電子メールを送信する機能がないため、これはPHPで行う必要があります。

JavaScriptでできることは、DIVの内容を取得し、電子メールを送信するPHPスクリプトに送信することです。

あなたがこのようなものを持っているなら:

<form action="your_php_script.php" method="POST">
<textarea name="body"></textarea>
<input type="submit" value="Send" />
</form>

次に、AJAXなしで機能し、textarea値を渡すyour_php_script.phpにリダイレクトします。

ただし、AJAXを介して送信する場合は、次のように簡単に実行でき、さらにいくつかのJSコードを追加できます。

$('form').submit(function() {
   var body = $('input[name="body"]').val();
      $.ajax({
         type: 'POST',
         data: 'body='+body,
         success: function() {
            alert('Message was sent');
         },
         error: function(error) {
            alert('Error occured: ',error);
         }
      });
   return false;
});

そして、PHPスクリプト内で、次のように値を取得します。

$body = $_POST['body'];
于 2012-10-03T09:59:22.120 に答える