我正在寻找Kartik Select2 Page
特别是我想在列表的每个元素中添加一个图像,例如:
use kartik\widgets\Select2;
use yii\web\JsExpression;
use yii\bootstrap\Modal;
// Templating example of formatting each list element
$url = \Yii::$app->urlManager->baseUrl . '/images/flags/';
$format = <<< SCRIPT
function format(state) {
if (!state.id) return state.text; // optgroup
src = '$url' + state.id.toLowerCase() + '.png'
return '<img class="flag" src="' + src + '"/>' + state.text;
}
SCRIPT;
$escape = new JsExpression("function(m) { return m; }");
$this->registerJs($format, View::POS_HEAD);
echo '<label class="control-label">Provinces</label>';
echo Select2::widget([
'name' => 'state_12',
'data' => $data,
'options' => ['placeholder' => 'Select a state ...'],
'pluginOptions' => [
'templateResult' => new JsExpression('format'),
'templateSelection' => new JsExpression('format'),
'escapeMarkup' => $escape,
'allowClear' => true
],
]);
在这个例子中,你可以看到,带有状态图像的文件名与state.id具有相同的名称。
src = '$url' + state.id.toLowerCase() + '.png'
并且使用起来很简单。
但我的问题是每个州的文件名都不同,并存储在我的数据库中。例如,我有:
//Active Record
$state->id //my state id
$state->img // the name of the image i want
如何将列表中每个元素的正确图像名称传递给脚本?
感谢您的帮助。