Webサイトを製作しています。

あるページからメールフォームのページへリンクした時に、特定の文字列がメールフォームの「件名」欄に入るようにしたいと思っています。

送る(リンクする)ページには
<a href="http://www.villaangelica.to/cgi-bin/postmail01/postmail2.html?modefg=2010&amp;xxx=02&amp;yyy=28&amp;zzz=14:00?subject=2010/02/28">
というリンク要素を置いています。
リンクされる側のHTMLにはフォームタグがあり、その中へ<input>要素と、日付情報を取得するjavascriptを設置してあります。

<input type="hidden" name="date" value="subject">
<script type="text/javascript">
function getHikisuu(){
-中略-
document.write("" + getHikisuu.data.modefg +" ");
document.write("" + getHikisuu.data.xxx +" ");
document.write("" + getHikisuu.data.yyy +" ");
document.write("" + getHikisuu.data.zzz +"");
document.write("</p>");
</script>

というものです。

サーバーへ設置して稼働させてみたのですが、どうしても送られてくるメールのSubjectに必要な情報が入ってきません。
要点は、このHTMLファイルから「2010/02/28/14:00」という情報をメールフォームへ渡し、その情報がメールに入った状態で送信されたい、という事です。
よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人3回まで
  • 13歳以上
  • 登録:2010/02/15 17:05:23
  • 終了:2010/02/16 17:56:30

ベストアンサー

id:rouge_2008 No.3

rouge_2008回答回数594ベストアンサー獲得回数3512010/02/16 05:42:48

ポイント50pt

「date = subject」となって送信されてくるのでしたら、次の値が送信されているのだと思います。

<input type="hidden" name="date" value="subject">

この値を書き換えて送信すると良さそうです。

まず、ご紹介する方法で動作するように、上記タグに「id="date"」を追加します。

<input type="hidden" name="date" id="date" value="subject">

次に、prototype.jsを使用しますので、以下からダウンロードします。

http://www.prototypejs.org/download

headタグ内に読み込む記述を追加します。

<script type="text/javascript" src="prototype.js"></script>

次の記述を

new getHikisuu();
document.write("<p>");
document.write("" + getHikisuu.data.modefg +" ");
document.write("" + getHikisuu.data.xxx +" ");
document.write("" + getHikisuu.data.yyy +" ");
document.write("" + getHikisuu.data.zzz +"");
document.write("</p>");

以下のように変更します。

	new getHikisuu();
	var datetext = getHikisuu.data.modefg +"/"
	 + getHikisuu.data.xxx +"/"
	  + getHikisuu.data.yyy +" "
	   + getHikisuu.data.zzz +"";
	document.write("<p>");
	document.write(datetext);
	document.write("</p>");

	var elem = $('date'); 
	elem.setAttribute("value", datetext); 

これで確認してみてください。

※なお、リンクには以下のように記述してください。

(今回の方法では、「&subject=2010/02/28」は使用していませんので、必要ありません。)

<a href="http://www.villaangelica.to/cgi-bin/postmail01/postmail2.html?modefg=2010&xxx=02&yyy=28&zzz=14:00">XXXXX</a>

※何か分からない事がある場合は、コメント欄を開けてくださった方が、やり取りしやすいです。

id:dics

ありがとうございます。

午後に試してみます。

コメント欄の事もありがとうございました。慣れないもので申し訳ありません。

これ以後は活用しようと思います。

2010/02/16 08:07:24

その他の回答(2件)

id:misosoup No.1

misosoup回答回数27ベストアンサー獲得回数02010/02/15 17:34:55

ポイント15pt

?subject=2010/02/28

&subject=2010/02/28

でいかがでしょう?


http://q.hatena.ne.jp/1266221121

id:dics

早速ありがとうございます。

ソースを変更して試してみましたが、結果は「subject」という文字が入ってくるだけでした。

2010/02/15 18:15:20
id:km1967 No.2

km1967回答回数541ベストアンサー獲得回数402010/02/15 18:55:55

ポイント15pt

「2010/02/28/14:00」をURLエンコードする必要があります。

&subject=2010%2F02%2F28%2F14%3A00

としてください。


URLエンコード用ツール

http://urlencode.net/result.cgi

id:dics

ありがとうございます。

早速試してみたのですが、送られてきたメールは「date = subject」とだけ入ったものでした。(これは変更前と同じです)

ここで仰る「2010/02/28/14:00」は、メールフォームへリンクするHTMLファイルの側のお話しだと思うのですが、間違っていますでしょうか。お書きになっているとおりの文字列を、リンクする側のファイルのlink要素へ入れました。

2010/02/15 19:34:19
id:rouge_2008 No.3

rouge_2008回答回数594ベストアンサー獲得回数3512010/02/16 05:42:48ここでベストアンサー

ポイント50pt

「date = subject」となって送信されてくるのでしたら、次の値が送信されているのだと思います。

<input type="hidden" name="date" value="subject">

この値を書き換えて送信すると良さそうです。

まず、ご紹介する方法で動作するように、上記タグに「id="date"」を追加します。

<input type="hidden" name="date" id="date" value="subject">

次に、prototype.jsを使用しますので、以下からダウンロードします。

http://www.prototypejs.org/download

headタグ内に読み込む記述を追加します。

<script type="text/javascript" src="prototype.js"></script>

次の記述を

new getHikisuu();
document.write("<p>");
document.write("" + getHikisuu.data.modefg +" ");
document.write("" + getHikisuu.data.xxx +" ");
document.write("" + getHikisuu.data.yyy +" ");
document.write("" + getHikisuu.data.zzz +"");
document.write("</p>");

以下のように変更します。

	new getHikisuu();
	var datetext = getHikisuu.data.modefg +"/"
	 + getHikisuu.data.xxx +"/"
	  + getHikisuu.data.yyy +" "
	   + getHikisuu.data.zzz +"";
	document.write("<p>");
	document.write(datetext);
	document.write("</p>");

	var elem = $('date'); 
	elem.setAttribute("value", datetext); 

これで確認してみてください。

※なお、リンクには以下のように記述してください。

(今回の方法では、「&subject=2010/02/28」は使用していませんので、必要ありません。)

<a href="http://www.villaangelica.to/cgi-bin/postmail01/postmail2.html?modefg=2010&xxx=02&yyy=28&zzz=14:00">XXXXX</a>

※何か分からない事がある場合は、コメント欄を開けてくださった方が、やり取りしやすいです。

id:dics

ありがとうございます。

午後に試してみます。

コメント欄の事もありがとうございました。慣れないもので申し訳ありません。

これ以後は活用しようと思います。

2010/02/16 08:07:24
  • id:rouge_2008
    一つ確認したいのですが、フォームから送信されたメールの件名に予約の日付を指定するのではなくて、メールの本文に「date = 2010/02/28 14:00」のように予約の日付が記述されていればいいのですね?
    もし、メールの件名に予約の日付を指定したい場合、以下のようなタグを追加して、javascriptの方も若干変更する必要があります。

    <input type="hidden" name="subject" id="subject" value="dummy">

    それから、一番重要なのですが、CGIスクリプトがフォームから渡されたsubject(別のname属性の場合もあります)の値をメールの件名に設定できる必要があります。
    ※これはスクリプトによって異なりますので、使用しているCGIが分からないと対処できません。
  • id:dics
    フォローありがとうございます。
    はい、メールの件名にではなく、本文に入る状態を求めております。
    先ほどアドバイス頂いた通りに、タグやスクリプト記述を変えて試してみましたところ、上手く行きました。
    以下のような本文で送信されてきました。
    //----
    date = 2010/02/28 14:00
    新郎様姓 = XX
    新郎様名 = YY
    セイ = XX …以下略
    //----

    顧客側に見える、メールフォームと確認画面でも、以下のように問題のない表示になっていました。
    //----
    ご予約日
    2010/02/28 14:00
    //----
    date 2010/02/28 14:00
    //----

    因みに、使用しているCGIはwww.kent-web.com/さんのPOST-MAIL v4.3 (2008/02/13)です。
  • id:rouge_2008
    ご報告ありがとうございます。
    問題なく動作したという事で良かったです。(^-^)
  • id:dics
    ありがとうございました。m(_ _)m

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません