2016-07-11 81 views
0

我想產生這樣CakePHP 3:在select |中動態創建選項表單輔助

<select name="quantity"> 
    <option value="">Quantity</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

其中動態生成的選項select輸入字段。

有一個包含int值的stock列。我想要產生與股票價值一樣多的期權。例如:如果stock的值爲5,則選項將從15

我可以產生5長度的意願

$this->Form->select('quantity', [1,2,3,4,5], ['empty' => 'Quantity']) 

但在這裏選擇產生選擇輸入字段。我希望它按照stock列中的值生成。

回答

0

首先設置在控制器的$堆棧變量值使用設置 (簡單的方式):

$this->set('stack', $stack); 

使用該變量像你這樣看待:

$options = range(1,$stack); 

$this->Form->select('dropdown name', $options, ['empty' => 'Quantity']) 
+0

謝謝@pradeep,但這裏有一個問題...值分配從0開始像''我想從1賦值'' –

+1

使用此選項> $ options = range(0,$ stack);未設置($項[0]);然後使用$ options – pradeep

0
$arr=[]; 
for($i = 0;$i<$stock;i++) array_push($arr, $i); 

$this->Form->select('quantity', $arr, ['empty' => 'Quantity']) 
1

您可以使用PHP range功能

$options = array_combine(range(1, $stock), range(1, $stock)); 

$this->Form->select('quantity', $options, ['empty' => 'Quantity'])