第二引数に値を配列で渡せば良いので、range関数を使って配列を作って代入。
と考えたのですが、問題が発生。
1 2 |
$num=range(1,5); echo $form->select('num', $num, null,array('empty'=> '選択してください')); |
option valueの値と、表示される数字が1つズレてしまいました。
これでは使いにくい。
1 2 3 4 5 6 |
<option value="">選択してください</option> <option value="0">1</option> <option value="1">2</option> <option value="2">3</option> <option value="3">4</option> <option value="4">5</option> |
$num=range(1,5);
の中身を見てみますと↓
1 2 3 4 5 6 7 |
( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) |
求める値は
1 2 3 4 5 6 7 |
( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) |
配列を作る関数を作るしかないですね。
1 2 3 4 5 6 7 8 |
function selectRange($min, $max, $step=1) { for($i = $min; $i <= $max; $i += $step) { $num[$i] = $i; } return $num; } |
この関数を使って、
1 2 |
$num=selectRange(1,5); echo $form->select('num', $num, null,array('empty'=> '選択してください')); |
これで求める値になりました。
1 2 3 4 5 6 |
<option value="">選択してください</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> |
人気記事一覧
- MySQL 最大の値・最新の日付データを1つ抽出する方法(MAX)
- [CakePHP] XformHelperの使い方
- Linux: スワップファイル(swp)の削除方法
- HTMLのForm methodとactionについて
- PHPでカンマ区切りデータを配列に入れる方法 (explode)
- [エラー対処] failed to open stream: No such file or directory
- [vsftp] FileZillaから接続できない場合の対処法
- [CSS]ブロック要素(div)の高さを、内部のfloat要素に合わせて自動調整する
- PHP5.1→PHP5.3へバージョンアップする方法(CentOS)
- PHPでテキストを1行ずつ読み込む方法(file_get_contents,explode)