.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
15 人のユーザが現在オンラインです。 (15 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 15

もっと...

.
.リンク集

メイン
   CakePHP ビュー(View)
     SelectTag の使い方
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
shun
投稿日時: 2006-10-30 23:38
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
SelectTag の使い方
Selectタグに関するTipsを書かれています。

CakePHPでselect要素を使う

http://www.usamimi.info/~oomori/blog/cakephp-select/
CakePHPでselect要素を使いたいところがあったんだけど、公式のマニュアルを見るとそれらしきものは載っていない。で、そんなはずは無いだろうと探しているとHelperのAPIにselectTagなるものを発見したので、試行錯誤しながら使ってみた。

shun
投稿日時: 2007-1-25 12:11
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: SelectTag の使い方
下記にも情報があります。
http://www.shepherdweb.com/2007/01/07/using-the-cakephp-selecttag-htmlhelper/

ついでにまとめておくと、

<?php
HtmlHelper
::selectTag  
  
$fieldName,               // フィールド名。コントローラからは、$this->params['data']で取得できる。
  
$optionElements,          // 選択項目の名称 'array("1","2","3")など。'
  
$selected null,         // 何番目が選択状態か(整数 or null)
  
$selectAttr = array(),    // SELECTエレメントの属性'array('onChange'=>'return this.form.submit();', 'class' => 'cssclassname') など。'
  
$optionAttr null,       // OPTIONエレメントの属性。$selectAttr と同じ方法。
  
$showEmpty true,        // 空項目を出力するか
  
$return false           // true にすると、echo ではなく、return でデータが返る。
 
)
?>


一例として、

<?php
<?php $options = array("1","2","3"); ?>
<?php $selected 
1?>
<td><?php echo $html->selectTag('Rule/nav_page'$options$selected, array('onChange'=>'return this.form.submit();'), nullfalse); ?></td>
?>


としておくと、

<?php
<td><select name="data[Rule][nav_page]"  onChange="return this.form.submit();" id="RuleNavPage">
<
option value="1"  selected="selected">1</option>
<
option value="2" >2</option>
<
option value="3" >3</option>
</
select></td>
?>


と展開され、その結果はコントローラのほうで下記のようにして取得できます。


<?php
if(isset($this->params['data']['Rule']['nav_page'])){
            
$page $this->params['data']['Rule']['nav_page'];
        }
?>



また、モデルのデータから、$optionElements の配列を作りたいときがあると思いますが、そういう場合には、$this->モデル単数名->generateList() を使うと簡単に配列の形で取得できます。

generateList(null,null,null,"{n}.モデル単数名.id","{n}.モデル単数名.フィールド名")
など。"{n}." は、“そのまま”何も変えずに書き込んでください。
ohguma
投稿日時: 2007-1-25 15:00
Baker 常連
登録日: 2006-10-23
居住地:
投稿: 66
Re: SelectTag の使い方
generateList を使う際、結果配列のキーがテーブル主キー値でかつ、モデルクラス内で以下を定義するか title もしくは name というフィールド名がある場合、第4,5引数を省略してもそれらのフィールドの値が返されます。

var $displayField = 'hoge';


selectTagなどで使う値を取得する場合は generateList(null, 'id')などと簡略化すると楽です。
shun
投稿日時: 2007-1-26 12:32
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: SelectTag の使い方
参考になる情報ありがとうございます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .