Smary 2.6.10 以降の html_radios 関数で label タグの for 属性を設定する方法

comments(1) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  例えば,以下のようなコードがあったとして

<?php
$smarty->assign('cust_radios', array(
                               1000 => 'Johnson',
                               1001 => 'Smith'
                               );
$smarty->assign('customer_id', 1001);
?>


  テンプレートを以下のように記述する.

{html_radios name="id" options=$cust_radios selected=$customer_id}


  出力はこうなるはずだった.

<label for="id_1001"><input type="radio" name="id" value="1001" id="id_1001" checked="checked" />Johnson</label>
<label for="id_1002"><input type="radio" name="id" value="1002" id="id_1002" />Smith</label>


  ところが Smarty 2.6.10 以降,出力は以下のようになる.

<label><input type="radio" name="id" value="1001" checked="checked" />Johnson</label>
<label><input type="radio" name="id" value="1002" />Smith</label>


  これで,何が問題かというと,IE では Johnson や Smith をクリックしても,ラジオボタンは選択されない.
  Firefox や Opera などでは OK なのに.
  
  そこで Smarty 2.6.10 辺りから追加された label_ids オプションを使うと

{html_radios name="id" options=$cust_radios selected=$customer_id label_ids=true}


  ちゃんと,label タグに for 属性が付いて,IE でも選択できるようになった.

<label for="id_1001"><input type="radio" name="id" value="1001" id="id_1001" checked="checked" />Johnson</label>
<label for="id_1002"><input type="radio" name="id" value="1002" id="id_1002" />Smith</label>


  http://viewcvs.php.net/viewcvs.cgi/smarty/libs/plugins/function.html_radio ...

タグ: [PHP][Code]

この記事へのコメント

なりふみさん、PC にかなり強いみたいですね。
私には全然分からないレベルです。。。

ルクセンブルクでの生活はどうですか?
私は去年ホームステイしたんですけど、素敵な国でした♪

あい | 2006/01/29 (Sun) 23:13:35

この記事へのコメントを書く

名前:

メールアドレス (公開されません):

URL:

コメント (入力必須)

この記事へのトラックバック URL

http://cl.pocari.org/tb.php/2006-01-19-2

この記事へのトラックバック

(トラックバックはありません)