Php yii2将css类动态应用于复选框选项
我想将css类应用于复选框列表选项 我的代码中有:Php yii2将css类动态应用于复选框选项,php,css,yii2,Php,Css,Yii2,我想将css类应用于复选框列表选项 我的代码中有: <?= $form->field($searchModel, 'colour') ->checkboxList(ArrayHelper::map(app\modules\admin\models\ShoeColour::find()->all(), 'id', 'colour'), ([ 'itemOptions'=>['class'=>'my-own-custom-class']])) ?>
<?= $form->field($searchModel, 'colour')
->checkboxList(ArrayHelper::map(app\modules\admin\models\ShoeColour::find()->all(), 'id', 'colour'),
([ 'itemOptions'=>['class'=>'my-own-custom-class']])) ?>
生成的html如下所示:
<div class="form-group field-productsearch-colour">
<label class="control-label">Colour</label>
<input type="hidden" name="ProductSearch[colour]" value=""><div id="productsearch-colour"><label><input type="checkbox" class="my-own-custom-class" name="ProductSearch[colour][]" value="1"> Red</label>
<label><input type="checkbox" class="my-own-custom-class" name="ProductSearch[colour][]" value="2"> Blue</label>
<label><input type="checkbox" class="my-own-custom-class" name="ProductSearch[colour][]" value="3"> Pink</label>
<label><input type="checkbox" class="my-own-custom-class" name="ProductSearch[colour][]" value="4"> Black</label>
<label><input type="checkbox" class="my-own-custom-class" name="ProductSearch[colour][]" value="5"> Brown</label>
<label><input type="checkbox" class="my-own-custom-class" name="ProductSearch[colour][]" value="6"> Grey</label>
<label><input type="checkbox" class="my-own-custom-class" name="ProductSearch[colour][]" value="7"> White</label></div>
<div class="help-block"></div>
</div>
颜色
红色
蓝色
粉红色
黑色
棕色的
灰色
白色
我在我的table shoe_color-column中为每种颜色设置了css_类,我想为每种颜色应用css类,但不知道如何实现这一点
例如,我希望使用
class-1
、class-2
等等,而不是my own custom class
。您可以在循环中创建HTML标记:
<div class="form-group field-productsearch-colour">
<label class="control-label">Colour</label>
<input type="hidden" name="ProductSearch[colour]" value="">
<div id="productsearch-colour">
<?php
$i = 1;
foreach () { ?>
<label><input type="checkbox" class="class-<?= $i ?>" name="ProductSearch[colour][]" value="1"> Red</label>
<?php $i++;
} ?>
</div>
颜色
我认为@SfiliĜ81和@Michal Hynčica已经向您展示了您想要的东西。您必须在带有闭包的配置中使用项目,而不是使用项目选项
:
<?php
// **** ONLY FOR TEST ****
use \yii\helpers\Html;
use \yii\widgets\ActiveForm;
class ProductSearch extends \yii\base\Model {
public $colour;
}
$searchModel = new ProductSearch;
$colors = [
1 => 'Red',
2 => 'Blue',
3 => 'Pink',
4 => 'Black',
5 => 'Brown',
6 => 'Grey',
7 => 'White'
];
$form = ActiveForm::begin([]);
// END **** ONLY FOR TEST ****
echo $form->field($searchModel, 'colour')->checkboxList($colors, ['item'=> function($index, $label, $name, $checked, $value){
return Html::checkbox($name, $checked, [
'value' => $value,
'label' => $label,
'class' => 'class-' . ($index + 1), // <--------
]);
}]);
尝试阅读此文件,但已阅读。无法理解如何在活动形式中应用相同的方法,那么这个示例也没有详细说明动态类。问题@Sfili_81 linked的公认答案中的第二个示例正是您想要的。它以同样的方式应用于活动窗体。
<div class="form-group field-productsearch-colour">
<label class="control-label">Colour</label>
<input type="hidden" name="ProductSearch[colour]" value=""><div id="productsearch-colour"><label><input type="checkbox" class="class-1" name="ProductSearch[colour][]" value="1"> Red</label>
<label><input type="checkbox" class="class-2" name="ProductSearch[colour][]" value="2"> Blue</label>
<label><input type="checkbox" class="class-3" name="ProductSearch[colour][]" value="3"> Pink</label>
<label><input type="checkbox" class="class-4" name="ProductSearch[colour][]" value="4"> Black</label>
<label><input type="checkbox" class="class-5" name="ProductSearch[colour][]" value="5"> Brown</label>
<label><input type="checkbox" class="class-6" name="ProductSearch[colour][]" value="6"> Grey</label>
<label><input type="checkbox" class="class-7" name="ProductSearch[colour][]" value="7"> White</label></div>
<div class="help-block"></div>
</div>