2016-07-11 14 views
0

Ich möchte wieCakePHP 3: dynamisch Optionen in select | erstellen Form Helper

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

wo Option dynamisch generiert.

Es gibt eine stock Spalte, die int-Wert enthält. Ich möchte Optionen so viel wie Wert auf Lager generieren. Bsp .: Wenn stock Wert 5 ist, wird die Option von 1 bis 5 sein. von

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

Aber hier Optionen erzeugen Willen von 5 Länge

kann ich wählen Eingabefeld erzeugen. Ich möchte, dass es gemäß dem Wert in stock Spalte generiert wird.

Antwort

0

Sie zuerst Ihre $ Stack Variablenwert in der Steuerung eingestellt unter Verwendung (einfache Fahrt) verwenden:

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

verwenden, die variable so aus Ihrer Sicht:

$options = range(1,$stack); 

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

Danke @pradeep, aber es gibt ein Problem hier ... Wert zugewiesen sind von 0 ab wie '' Ich möchte Wert von 1 zuweisen ' –

+1

Verwenden Sie dies> $ options = Bereich (0, $ stack); nicht gesetzt ($ options [0]); Dann benutze $ Optionen – pradeep

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

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

können Sie PHP range Funktion

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

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