[RadPHP XE]QRadioGroupButtonを使う

RadPHP XEでQRadioGroupを使い方法。

QRadioGroupButtonはラジオボタンをグループ化したコンポーネントです。
複数の選択肢から一つの項目を選ぶ時に使用します。

※RPCLはRevision 291を使用しました。
 参考:RPCL(RadPHP Component Library) の最新版について

■選択肢の登録

QRadioGroupButtonに選択肢を登録するには、Itemsプロパティに選択肢の配列を設定します。

$this->QRadioGroup1->writeItems(array('RadPHP XE', 'Delphi XE', 'C++Builder XE'));

■選択項目の初期値の設定

初期状態で選択されている項目を設定するには、ItemIndexプロパティに選択項目のインデックスを設定します。

//2番目の項目を選択状態にする
$this->QRadioGroup1->writeItemIndex(1);

※プロパティは用意されているのですが、機能していないようです。不具合でしょうか。

■配置の設定

ラジオボタンは初期値では縦並びですが、横並びに変えることもできます。

フォームのJavaScriptのOnLoadイベントに次のコードを記述します。

function Unit1JSLoad($sender, $params)
{
    ?>
    //begin js
    QRadioGroup1.setLayout(new qx.ui.layout.HBox(5)); //横並び
    //end
    <?php
}

■選択された項目を取得する

QRadioGroupButtonで選択された値は、Submitされても送信されません。
不具合でしょうか。

そこで、選択された項目の値をSubmit時にJavaScriptでHiddenFieldに設定します。

function QButton1JSClick($sender, $params)
{
    ?>
    //begin js
    findObj('HiddenField1').value = QRadioGroup1.getSelection()[0].getLabel();
    //end
    <?php
}

QRadioGroup1.getSelection()は選択されている項目(qx.ui.form.RadioButton)を配列で返します。
最初の項目のラベルの文字をHiddenField1に設定しています。

送信された値を見ると、QRadioGroupButtonで選択された項目の値がHiddenField1に設定されていることがわかります。

function QButton1Click($sender, $params)
{
      echo var_dump($_POST);
}

出力結果

'serverevent' => string 'QButton1Click' (length=13)
'serverparams' => string 'undefined' (length=9)
'HiddenField1' => string 'C++Builder XE' (length=13)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください