-1

我想生成select像这样的输入字段

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

其中选项是动态生成的。

有一stock列包含 int 值。我想产生与股票价值一样多的期权。例如:如果stock值为 5,则选项将为 from 1to 5

我可以通过生成选择输入字段

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

但是这里生成的选项将是 5 长度。我希望它根据stock列中的值生成。

4

3 回答 3

1

你可以使用php范围函数

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

$this->Form->select('quantity', $options, ['empty' => 'Quantity'])
于 2016-07-11T08:57:39.853 回答
0

首先使用 set (简单方式)在控制器中设置 $stack 变量值:

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

在您的视图中使用这样的变量:

$options = range(1,$stack);

 $this->Form->select('dropdown name', $options, ['empty' => 'Quantity'])
于 2016-07-11T11:32:42.207 回答
0
$arr=[];
for($i = 0;$i<$stock;i++) array_push($arr, $i); 

$this->Form->select('quantity', $arr, ['empty' => 'Quantity'])
于 2016-07-11T08:26:12.880 回答