2016-07-11 84 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'])