HTMLでValidateするフォームメール (5)

Date 2007-09-15 06:01:46 | Category: XOOPS

in englishin japanese
pico-1.52になって、HTMLを書くだけ、というフォームメールシステムの仕様もほぼ確定したので、しばらくは実例でいきましょう。

繰り返しになりますが、基本構造はこれです。

<{capture}>
<form>
(フォーム記述部分)
</form>
<{/capture}>
<{formmail}>


今回は、最近対応したcheckboxをやってみましょう。

<{capture}>
<form>
<input type="checkbox" name="好きなフルーツ" value="みかん" />みかん
<input type="checkbox" name="好きなフルーツ" value="りんご" />りんご
<input type="checkbox" name="好きなフルーツ" value="梨" />梨
<input type="submit" value="内容確認" />
</form>
<{/capture}>
<{formmail}>

これが、一番簡単なパターンですね。
チェックすべきは、"好きなフルーツ[]" としなくても良い点です。
nameの最後に [] を追加しなければいけない、というのは、いかにもPHP側の都合なので、このシステムでは、そうしなくても、ちゃんと複数チェックを認識するようにしてます。

なお、このチェックボックスは、HTML的にはあまりよろしくありません。チェックボックスには<label>をつけるべきですし、<fieldset>でまとまっていないのもよくありません。name属性に日本語があるのを嫌がる人もいるでしょう。というわけで、同じフォームをこんな感じに書いてみます。

<{capture}>
<form>
<fieldset>
<legend>好きなフルーツ</legend>
<input type="checkbox" name="favorite_fruits" id="favorite_fruits_orange" value="みかん" /><label for="favorite_fruits_orange">みかん</label>
<input type="checkbox" name="favorite_fruits" id="favorite_fruits_apple" value="りんご" /><label for="favorite_fruits_apple">りんご</label>
<input type="checkbox" name="favorite_fruits" id="favorite_fruits_pear" value="梨" /><label for="favorite_fruits_pear">梨</label>
</fieldset>
<input type="submit" value="内容確認" />
</form>
<{/capture}>
<{formmail}>

こういう構造でも、ちゃんと「好きなフルーツ」が項目のタイトルとなります。
checkboxとradioは特殊で、<label>から項目タイトルは取りません。
<fieldset>ブロックに所属している場合、直近の<legend>の中身を引っ張ってきます。
無ければ、title属性やname属性から引っ張ります。上の例では、name属性が、項目タイトルとなったわけです。name属性ですから、スペースなどを含むことは許されません。そういうキャラクターを利用したい場合は、<legend>で指定するべきです。




You can read more news at PEAK XOOPS.
http://xoops.peak.ne.jp

The URL for this story is:
http://xoops.peak.ne.jp/md/news/index.php?page=article&storyid=441