HTML入門

フォームの作成とメール送信

目次

はじめに

HTMLは基本的にはテキスト表示のために開発されたものです。ところが相手先に連絡をとる必要もあり、HTMLにはメール送信機能が付加されています。メール以外にもCGIといわれるプログラムを介して入力したデータなどを利用してデータベースを操作することも可能です。ここでは、画面入力を可能とするコンテンツと、送信動作を定義するフォームについて説明します。

画面から入力され相手側に送信される事項はフォームの内側に記述します。記述できるものはラジオボタン、チェックボックス、インプットボックス、テキストボックス、ボタンなどです。具体的な内容は次のフォームの定義で確認してください。


フォームの定義

フォームの中には、次に示すような送信機能をもつ 内容(コンテンツ)を記述することができます。

テキストフィールド(1行のみ)

パスワードフィールド(1行のみ)

隠されたフィールド

テキストフィールド(複数行)

チェックボックス

ラジオボタン

ボタン

選択欄

 実際にデータ入力を行い、どのような動作をするか確認しなさい。フォーム領域(例では、空色で定義された部分)の入力内容をすべて取り消すにはリセットボタンを押します。なお、このフォームは送信に必要な定義がしてありませんので送信は行われません。

フォーム・タグは
 <form>
  フォームの内容
 </form>
と定義します。上の例は次のように定義しています。

<form>
 <p><input type="text" name="textfield4">テキストフィールド(1行のみ)</p>
 <p><input type="password" name="textfield32">パスワードフィールド(1行のみ)</p>
 <p><input type="hidden" name="hiddenField">隠されたフィールド</p>
 <p><textarea name="textarea"></textarea>テキストフィールド(複数行)</p>
 <p><input type="checkbox" name="checkbox2" value="checkbox">チェックボックス</p>
 <p><input type="radio" name="radiobutton" value="radiobutton">ラジオボタン</p>
 <p><input type="submit" name="Submit3" value="送信">
   <input type="reset" name="Submit22" value="リセット">ボタン</p>
 <p><input type="button" name="kidou" value="起動"></p>
 <p><select name="select2">
     <option>東京都
     <option>名古屋市
     <option>大阪府
   </select>選択欄</p>
</form>

 フォームで送信を行うには、ACTIONとMETHODのアトリビュートを指定します。この2つのアトリビュートの定義を省略すると、送信動作をしません。上の例では<form>とだけ定義しているので、動作しないのです。 次にアトリビュートの一覧を示します。なお、enctypeは、mailto:定義時に使用します。省略時はtext/plainが指定されたと見なします。

アトリビュート
意味
その他
method="" 送信形式の指定 post 一般的な送信指定
get ほとんど使用しない(255文字まで)
action="" 送信先の指定 mailto: メールアドレスを指定する
実行するCGIを指定 プログラムを実行する
enctype="" メールの形式指定 text/plain メール本文で送信すると指定
multipart/form-data 添付形式で送信すると指定
実際にメールを送るときのformの定義は次のようにします
<FORM ACTION="mailto:あなたのメールアドレス" METHOD="post">
メールアドレスの記述は十分に注意して書き間違えないようにしてください。間違ったアドレスを記入すると、メールの送信者にも受信者にも多大な迷惑をかけます。* METHOD の指定を忘れると送信は実行されず、メーラーが起動します。
CGIを起動するときのformの定義は次のようにします
<FORM ACTION="http://XXX.ac.jp/XXX.cgi" METHOD="post">

CGIを起動するときはACTION=で起動するプログラム名を指定しますが、CGIに関する詳細は別のセクションで行います。

 上の例を注意してみると、INPUTTEXTAREASELECTの3種類のコンテンツがあるだけですが、画面上では9種類のパターンとなります。それぞれのタグの詳細な説明を行います。

INPUTタグ

インプットタグは、Typeアトリビュートの指定で、さまざまな形式のものに変化します。基本的には7種類になります。

TYPEの値
動作(意味)
NS
IE
text 1行フィールドを作る
password パスワードフィールドを作る
hidden 隠しフィールドを作る
checkbox チェックボックスを作る
radio ラジオボタンを作る
submit 実行ボタンを作る
reset リセットボタンを作る
button ボタンを作る
image イメージボタンを作る
×
file ファイル送信ボックスを作る
×

1行フィールド(type="text")

1行フィールドの表示例を右に示す。1行フィールドの記述例を下に示す
<input type="text" name="識別名" value="初期値" size="文字数" maxlength="最大文字数">
アトリビュート
説    明
name データを受け取った側でどのフィールドに記入されたデータであるかを識別するものです。多くのフィールドを使用したとき、受信したプログラムや、メールで、どのフィールドに記述されたデータかがわからなくなることを防ぐものです
value 1行フィールドにあらかじめ表示する文字列を指定する
size 1行フィールドを画面に表示するときの、長さを文字数で指定する
maxlength 1行フィールドに入力できる最大文字数を指定する
【例題】 次の一行フィールドを作成しなさい

 識別名を”AXZ”、フィールドの長さを10文字、最大可能入力文字数を10文字、初期値をABCとするフィールドで、ブラウザに表示する文字は”資産名称を入力しなさい”であるもの

パスワードフィールド(type="password")

 パスワードフィールドは、パスワードを入力するために必要なものです。このフィールドの定義は一行フィールドと同じです。パスワードフィールドは入力した文字列を表示せず、文字数に相当するアスタリスクを表示します

パスワードフィールドの表示例を右に示す
<input type="password" name="識別名" value="初期値" size="文字数" maxlength="最大文字数">
アトリビュート
説    明
name データを受け取った側でどのフィールドに記入されたデータであるかを識別するものです。多くのフィールドを使用したとき、受信したプログラムや、メールで、どのフィールドに記述されたデータかがわからなくなることを防ぐものです
value パスワードフィールドにあらかじめ表示する文字列を指定する
size パスワードフィールドを画面に表示するときの、長さを文字数で指定する
maxlength パスワードフィールドに入力できる最大文字数を指定する
【例題】 次のパスワードフィールドを作成しなさい

 識別名を”PASS”とするパスワードフィールドで、ブラウザに表示する文字は”あなたのパスワード”であるもの

隠しフィールド(type="hidden")

 隠しフィールドは、ブラウザ利用者には必要ないものの、データ処理上必要な情報を送信するために、その情報を定義するものです。CGIを使用するとき、重要な役割を果たします。

<input type="hidden" name="送信されたときの識別名" value="初期値を使用するときの文字列">

プログラムによるコントロールをしないときは、valueに必ず値を入れておく必要があります。なぜなら、このフィールドは隠れており、入力できないからです。この値はJAVAのようなプログラムで指定することもできます。
【例題】 次の隠しフィールドを作成しなさい

 識別名”HID”、値が”2000”というもの

以上の3つが文字列データ入力用のものとなります。

次のグループはチェックをすることによりデータを選択したことを指定するものです。
これにはチェックボックスとラジオボタンがあります。

チェックボックス(type="checkbox")

 チェックボックスは、項目を選択するときに使用します。一つのform内に複数のチェックボックスを配置したとき、各項目を複数選択することができます。
チェックボックスの表示例を右に示す
<input type="checkbox" name="識別名" value="チェックされたときに送信される値">
チェックをしなければ、VALUEの値は送信されません。また、あらかじめチェックした状態にするには、inputタグ内にcheckedと記入しておきます。<input ・・・・・ checked>
【例題】 

  女 というチェックボックスを作成しなさい。ただし前者の識別名はMAN、値もMANとし、後者の識別名はFRA、値もFRAとしなさい。

ラジオボタン(type="radio")

 ラジオボタンは、複数項目からひとつを選択するときに使用します。一つのform内に複数のラジオボタンを配置したとき、同一の識別名のものをひとつのグループとし、その中でひとつを選択することができます。
ラジオボタンの表示例を右に示す TOYOTANISSAN
<input type="radio" name="識別名" value="チェックされたときに送信される値">
チェックをしなければ、VALUEの値は送信されません。また、あらかじめチェックした状態にするには、inputタグ内にcheckedと記入しておきます。<input ・・・・・ checked>
【例題】 

  女 というラジオボタンを作成しなさい。ただし前者の識別名はSEIBETU、値はMANとし、後者の識別名はSEIBETU、値はFRAとしなさい。

ボタンの定義

実行ボタン(type="submit")

 実行ボタンは、formで入力された情報を送信します。送信先はformのactionアトリビュートで指定したところになります。ボタンの表面に表示する文字はvalueで指定します。
実行ボタンの例を右に2つ示す
<input type="submit" name="Submit3" value="送信">
【例題】 

  見出しが”計算実行”、識別名が”CALC”という実行ボタンを作成しなさい。

リセットボタン(type="reset")

 リセットボタンは、フォーム内のすべてのフィールドなどの値を初期値に戻します。ボタンの表面に表示する文字はvalueで指定します。
リセットボタンの例を右に示す
<input type="reset" name="Submit22" value="リセット">  

汎用ボタン(type="button")

 汎用ボタンは、別の画面を起動したり、javascriptを実行したりするのに使用します。汎用ボタンの表面に表示する文字はvalueで指定します。
 Formで1行フィールドに入力し、ENTER キーを押すとほかの入力が終了しなくても、送信が実行されます。これを防ぐ目的でスクリプトと組み合わせて「実行ボタン」に代えて使用することもできます。
ボタンの例を右に示す
<input type="button" name="kidou" value="起 動" onclick="submit();">  
【例題】 

  見出しが”クリア”、識別名が”RESET”というリセットボタンを作成しなさい。

【総合問題】

自分のメールアドレスへ次の項目を送信するフォームを作りなさい。

入力者の名前

入力者のメールアドレス

好きな音楽

性別


TEXTAREAタグ(複数行フィールド)

 1行フィールドでは、長い文字列を扱えません。TEXTAREAタグは、レポートや長文のテキストを記述したり、表示するために使用します。右の例では、行数を5、1行の文字数を40と指定しています。
<textarea name="textarea" rows="行数" cols="一行の文字数"></textarea>
<input>は終tagがないが、<textarea>は、終tag</textarea>が必要である。複数行フィールドにあらかじめ文字を表示したいときは、「その文字」を終tagの前に記述すればよい。
アトリビュート
説    明
name データを受け取った側でどのフィールドに記入されたデータであるかを識別するものです。多くのフィールドを使用したとき、受信したプログラムや、メールで、どのフィールドに記述されたデータかがわからなくなることを防ぐものです
rows テキストエリアとして表示する行数を指定する。実際の入力は指定行数を超えて入力できます。実際の行数が指定行数を超過すると、スクロールバーが使用できるようになります。
cols テキストエリアとして表示する1行の文字数を指定する。この文字数を超えるとき、自動的に次の行に続く。
【例題】 

  識別名”REPORT”、文字数50、行数8のテキストエリアを作成しなさい。

【例題】 

  識別名”REPORT”、文字数50、行数4のテキストエリアを作成しなさい。ただし、フィールドにあなたの名前を表示すること。

SELECTタグ

 複数の値から特定の値を選択するためのリストボックスを作成します。行数の指定により、表示形式が右のように異なります。また、行数=4の例では、複数行を選択できるように設定しています。[Ctrl]キーと[Alt]キーを同時に押しながら、マウスで行を選択すれば、複数行を選ぶことができます。選択したものをはずすときも、同じ操作をします。
行数=1
行数=4
<select name="select2" size="フィールドタイプの行数" multiple>選択項目</select>
アトリビュート
説    明
name データを受け取った側でどのフィールドに記入されたデータであるかを識別するものです。多くのフィールドを使用したとき、受信したプログラムや、メールで、どのフィールドに記述されたデータかがわからなくなることを防ぐものです
size 選択フィールドとして表示する行数を指定します。
multiple 複数選択を可能にします。

選択項目の設定方法

選択する項目は<option>で指定します。
<option selected value="送信する文字">選択項目</option>
表示する項目数分繰り返して記述する
アトリビュート
説    明
selected 選択項目をあらかじめ選択しておくときに指定します。
value 送信時には選択項目の文字列が送られますが、選択項目以外の文字を送信したいときに指定します。

実際のOPTIONの記述は、次のようになります。

<option>選択する項目</option>
<option>選択する項目</option>
<option>選択する項目</option>

のように記述します。

【例題】 <select name="rensyu" size="4" multiple>と指定しているとき

1.選択する項目として、"TOYOTA","NISSAN","HONDA"と3つを指定したとき、表示結果はどのようになるか。
2.選択する項目として、"TOYOTA","NISSAN","HONDA","SUBARU","SUZUKI","MAZDA"と指定したとき、表示結果はどのようになるか。
3.2で"NISSAN"と"SUZUKI"をあらかじめ選択したとき、表示結果はどのようになるか。

【例題】 <select name="rensyu" size="1" >と指定しているとき

1.選択する項目として、"TOYOTA","NISSAN","HONDA"と3つを指定したとき、表示結果はどのようになるか。
2.1で”TOYOTA"をあらかじめ選択したとき、表示結果はどのようになるか。
3.1で"HONDA"をあらかじめ選択したとき、表示結果はどのようになるか。

【練習】 

  あなたの好きなチームはという文字を表示して、巨人、阪神、中日、横浜、広島、ヤクルトから選択させるフォームを作成しなさい。

【問題】 自分のメールアドレスへ次の項目を送信するフォームを作りなさい。

入力者の名前(一行フィールド)

入力者のメールアドレス(パスワードフィールド)

好きな野球チーム(リストから選択する)

その理由(テキストエリアを使用)

性別(ラジオボックスを使用)

送信ボタンとリセットボタンを配置すること

【問題】 自分のメールアドレスへ次の項目を送信するフォームを作りなさい。

入力者の名前(一行フィールド)

入力者のメールアドレス(パスワードフィールド)

好きな野球チーム(リストから選択する)
 この場合、選んだチームに1からNまでの番号をつけ、番号を送信するようにすること

その理由(テキストエリアを使用)

性別(ラジオボックスを使用)

送信ボタンとリセットボタンを配置すること

この説明文は

わかりにくいところなど、気がついたら具体的にその部分と対応策について記述してください