Smarty + HTML_QuickForm Radioの値の取得

概要

HTML_QuickForm での Radio の作成方法と Smarty による Radio の値の取得方法です。

目次

HTML_QuickForm での Radio の作成方法

  1. 「&HTML_QuickForm::createElement」でHTML_QuickFormオブジェクト参照からRadioを作成します。
    // Radio 
    $radioArray[] = &HTML_QuickForm::createElement('radio', null, null, 'ラジオボタン1', 'ラジオボタン1');
    $radioArray[] = &HTML_QuickForm::createElement('radio', null, null, 'ラジオボタン2', 'ラジオボタン2');
    $radioArray[] = &HTML_QuickForm::createElement('radio', null, null, 'ラジオボタン3', 'ラジオボタン3');
    
    &HTML_QuickForm::createElement (要素の種類)
    HTML_QuickForm_radio ([name 属性 [, ラベル [, 表示するテキスト [, フィールドの値 [, 属性]]]]])

    name 属性はグループ登録する際にすべての要素に同一の名前を割り当てます。
    そうすることで、同じ name 属性を持つラジオボタンでひとつのラジオボタングループを形成します。

  2. 「addGroup」で要素を1つのグループとして登録します。
    グループとして登録しますが、ラジオボタンは単一の値しか取得しないため、選択された値は配列にはなりません。
    $this->_form->addGroup($radioArray, 'radioGroup', 'ラジオボタングループ', ' ');
    
    HTML_QuickForm::addGroup (要素の配列 [, グループ名 [, グループのラベル [, 区切り文字(配列) [, フォーム要素の名前にグループ名を使用するかどうか(要素を配列で保持するか)]]]])
  3. 作成された radio の htmlソースはこのようになります。
    ラジオボタングループ  (←グループのラベル)
    
    <input value="ラジオボタン1" type="radio" id="qf_9863e4" name="radioGroup" />
    <label for="qf_9863e4">ラジオボタン1</label> 
    <input value="ラジオボタン2" type="radio" id="qf_38ab2f" name="radioGroup" />
    <label for="qf_38ab2f">ラジオボタン2</label> 
    <input value="ラジオボタン3" type="radio" id="qf_cea4f2" name="radioGroup" />
    <label for="qf_cea4f2">ラジオボタン3</label>
    

Smarty による Radio の値の取得方法

  1. Radio の表示はグループで指定するとひとかたまりで表示されます。
    <table>
      <tr>
        <th>{$form.radioGroup.label}</th>
        <td>{$form.radioGroup.html}</td>
      </tr>
    </table>
    
  2. Radio の作成方法で示したように、ラジオボタンは単一の値しか取得しないため、選択された値は配列にはなりません。そのため、 Checkbox のように foreach でループさせる必要はありません。
    {$value.radioGroup}
    
  3. 取得した radio の内容はこのようになります。
    ラジオボタン2 
    

投稿日:

ページのトップへ戻る