2017-01-14 9 views
0

Ich versuche, ein Dropdown-Auswahl2 im Yii-Framework zu machen, und mit select2 v.3.5.2 schließe ich das folgende Code-Snippet ein, das ich ausprobiert habe.Select2 mit Symbol im Ergebnis

Dieser Import Select2 Ext.

<?php Yii::import('ext.select2.Select2'); ?> 

Diese Select2 Form:

<?php 
echo $form->labelEx($model,'icon_mark'); 
echo Select2::activeDropDownList($model, 'icon_mark', array(), array('class' => 'form-control')); 
echo $form->error($model,'icon_mark'); 
?> 

Diese HTML-Daten (Last in Javascript):

<option value="euro">euro</option> 
<option value="asterisk">asterisk</option> 
<option value="plus">plus</option> 

Und diese Javascript:

$.ajax({ 
    url: "<?php echo CController::createUrl('site/loadkelurahan') ?>", 
    type: 'POST', 
    data: {}, 
    success: function (data) { 
     $('#<?php echo CHtml::activeId($model, 'icon_mark') ?>').html(data); 
     $('#' + '<?php echo CHtml::activeId($model, 'icon_mark') ?>').select2().select2('val', ''); 
     if ("<?php echo $ismode ?>" == "edit") { 
      $('#' + '<?php echo CHtml::activeId($model, 'icon_mark') ?>').select2().select2('val', '<?php echo $model->icon_mark?>'); 
     } 
    }, 
    error: function (jqXHR, status, err) { 
     alert(err); 
    } 
}); 

mit einer Kombination aus der über Skript select2 läuft noch mally, dann möchte ich hier fragen, wie man eine Vorlage für select2 hinzufügt? , weil ich das Dropdown-select2 eigene Symbol jeweils möchte. Dort kann man ein gutes Beispiel geben. danke.

Antwort

0

tat ich das Gleiche, aber in Yii2, im Grunde müssen Sie das gleiche tun, die Rendering-Funktionalität des select2 Widget

Hier ist mein Code von yii2 Tweaking:

  <?php $format = new JsExpression(
       "function format(icon) { 
           return '<i class=\"'+ icon.id +'\" aria-hidden=\"true\"></i> ' + icon.text.replace('-', ' '); 
          }" 
      ); 
      ?> 
      <?= \kartik\select2\Select2::widget(
       [ 
        'name'   => 'MenuItem[' . $item->id . '][icon]', 
        'id'   => 'menu-item-icon-' . $item->id, 
        'data'   => array_merge(['none' => 'None'], \rmrevin\yii\fontawesome\FA::getConstants()), 
        'value'   => $item->icon, 
        'pluginOptions' => [ 
         'templateResult' => $format, 
         'templateSelection' => $format, 
         'escapeMarkup'  => new JsExpression("function(m) { return m; }"), 
         'allowClear'  => false, 
        ], 
       ] 
      ); ?> 

Im templateResult und templateSelection Callback müssen Sie Symbole rendern. Und in der escapeMarkup nur den Parameter zurückgeben, um sicherzustellen, dass die Vorlage nicht maskiert ist

+0

was ist mit Yii 1? –