prog_cgi:入力フォームを使う
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
prog_cgi:入力フォームを使う [2019/03/03 19:15] – hirohito | prog_cgi:入力フォームを使う [2019/03/06 19:24] – hirohito | ||
---|---|---|---|
行 7: | 行 7: | ||
ここでは、テキストと数字の入力ができるフォームを表示し、入力結果を表示するだけのアプリケーションを作成してみます。 | ここでは、テキストと数字の入力ができるフォームを表示し、入力結果を表示するだけのアプリケーションを作成してみます。 | ||
- | {{: | + | {{: |
行 113: | 行 113: | ||
</ | </ | ||
- | {{: | + | {{: |
行 138: | 行 138: | ||
このプログラムでは、フォームに入力され送信されてきたデータを画面にそのまま表示するだけです。 | このプログラムでは、フォームに入力され送信されてきたデータを画面にそのまま表示するだけです。 | ||
- | {{: | + | {{: |
行 146: | 行 146: | ||
<%= @form.make_tiny_sheet() %> | <%= @form.make_tiny_sheet() %> | ||
- | {{: | + | {{: |
行 189: | 行 189: | ||
</ | </ | ||
- | {{: | + | {{: |
+ | |||
+ | |||
+ | ===== POSTとGET ===== | ||
+ | |||
+ | フォームで使われるメソッドには POSTとGETがあり、デフォルトでPOSTメソッドが使われます。 | ||
+ | |||
+ | <form method=" | ||
+ | |||
+ | 通常のデータ登録などの場合はPOSTが適切ですが、検索するためのフォームなど、入力値がコンテンツの変更を伴わない場合には、GETメソッドを使う方が良い場合があります。 | ||
+ | |||
+ | GETが使われる場合、 action=" | ||
+ | (これは、ブラウザがそのように動作しているということですが、HTMLの仕様かどうかまでは調査しきれていません。) | ||
+ | |||
+ | そのため、フォームでGETを使う場合、ひと工夫必要になります。 | ||
+ | |||
+ | |||
+ | ==== 独自のテンプレート(フォーム)を使う場合 ==== | ||
+ | |||
+ | テンプレート中に以下の例を参考に hiddenで ctrlとactionを追加します。 | ||
+ | |||
+ | <code html> | ||
+ | <form name=" | ||
+ | <input type=" | ||
+ | <input type=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== フォームの自動生成を使う場合 ==== | ||
+ | |||
+ | use_get_method() メソッドを使いGETを使うことを指示すると、フォームオブジェクトにウィジェット ctrlとaction が追加されます。 | ||
+ | |||
+ | <code ruby> | ||
+ | @form = AlForm.new( ... ) | ||
+ | @form.use_get_method( : | ||
+ | </ | ||
+ | |||
+ | もしくは、自動生成しなくても、use_get_methodをウィジェット追加のためだけに使うことも考えられます。 | ||
+ | |||
+ | <code ruby> | ||
+ | @form = AlForm.new( ... ) | ||
+ | @form.use_get_method( : | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code html> | ||
+ | <form name=" | ||
+ | <%= @form.make_tag(: | ||
+ | <%= @form.make_tag(: | ||
+ | </ | ||
prog_cgi/入力フォームを使う.txt · 最終更新: 2019/03/15 17:36 by hirohito