Yii动态复选框

时间:2016-02-19 09:24:12

标签: checkbox yii2

我的表格中有一个名为' availability_option'使用类型枚举(' 0',' 1',' 2')。零意味着“固定价格”,一种意味着“拍卖”,“两种意味着”和“两种情况”。 我想动态生成2个复选框,一个用于固定价格,另一个用于拍卖'。 这怎么可能? 我是静止的。 但它不应该是yii的正确语法。

<input value="0" id="fixedprice" type="checkbox" name="ProductShop[availability_option][]">
<label for="fixedprice">Fixed Price</label>
<input value="1" id="auctionprice" type="checkbox" name="ProductShop[availability_option][]">
<label for="auctionprice">Auction</label>

我动态地想要它,那怎么可能?有什么想法吗?

2 个答案:

答案 0 :(得分:0)

使用checkboxList()

<?= $form->field($model, 'attribute_name')->inline(true)->checkboxList([0 => 'Fixed Price', 1 => 'Auction']) ?>

http://www.yiiframework.com/doc-2.0/yii-bootstrap-activefield.html#inline%28%29-detail

答案 1 :(得分:0)

我面临着同样的问题,我通过这样做解决了它:

<?php echo $form->field($model, 'name[]')->checkboxList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Item C']); ?>

请注意,checkboxList要求传递的数组的第一个参数也是字符串类型,因此您可能需要对数组进行更改。

生成的HTML将如下:

<label><input type="checkbox" name="fomrmName[name][]" value="'1'"> a</label>

我解决问题的另一种方法是将复选框包装在foreach块中,如下所示:

<?php foreach($vendorsData as $value){?>
<li><?= $form->field($ucVendors, 'vendor_id['.$value.']')->checkbox(array('label'=>$value)); ?>

,生成的html为:

<label><input type="checkbox" id="usedcarvendors-vendor_id-value" name="UsedCarVendors[vendor_id][value]" value="1"> value</label>

Reference Link here