PEAK XOOPS - HTMLでValidateするフォームメール (5) in englishin japanese

Archive | RSS |
XOOPS
XOOPS : HTMLでValidateするフォームメール (5)
Poster : GIJOE on 2007-09-15 06:01:46 (10521 reads)

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>で指定するべきです。


Printer friendly page Send this story to a friend

Comments list

delsol  Posted on 2008/7/21 12:02
ご回答ありがとうございます。うまくいきました。
すみません、お教えいただいたページは見落としておりました。
formmail4fleamarketが希望の機能に近いので、これを使用しました。
ありがとうございました。
GIJOE  Posted on 2008/7/18 5:15
delsolさん、こんにちは。

Quote:

(1)FCKEditorでフォームメールのソースを入力し、本文フィルタのSmarty(XoopsTpl) のチェックのみオンにして保存したのですが、
再度開くとcaptureやformmailのタグがエスケープされてしまいます。これは毎回手修正せざるを得ないでしょうか?

SmartyのコードをFCKEditorの置換機能から保護する
を参考にしてください

Quote:
(2)サンプルでは管理者にメールが届きますが、その他の登録ユーザに送信する方法はありますでしょうか?

どこかに書いたと思いますが、見つかりませんか?
<{formmail}>
にtoパラメータを渡せばOKのはずです。

<{formmail to="foo@example.co.jp"}>

等。
delsol  Posted on 2008/7/17 17:23
お世話になります。
2点ほど質問させてください。
(1)FCKEditorでフォームメールのソースを入力し、本文フィルタのSmarty(XoopsTpl) のチェックのみオンにして保存したのですが、
再度開くとcaptureやformmailのタグがエスケープされてしまいます。これは毎回手修正せざるを得ないでしょうか?
(2)サンプルでは管理者にメールが届きますが、その他の登録ユーザに送信する方法はありますでしょうか?
お手数ですがお教えいただけると幸いです。よろしくお願いいたします。
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!