Pergunta

Minha lista de seleção múltipla é muito grande, é difícil descobrir quais opções estão seleccionadas, eu quero mudar em alguma coisa como o seguinte, é possível?Ele pode estar em qualquer lugar, mas no momento eu tenho um costume "customer_address atributo" tipo "múltipla", enter image description here

Eu estou criando a minha atributo como este meu script sql,

    <?php

$installer = $this;

$installer->startSetup();

$installer->addAttribute('customer_address', 'additional_managers', array(
    'label' => 'Additional Store/Site Managers',
    'visible' => true,
    'required' => false,
    'type' => 'varchar',
    'input' => 'multiselect',
    'source' => 'abc_districtmanager/address_attribute_source_districtmanager',
    'onclick' => 'getSelectValues(this)',
    'user_defined' => 1,
    'position' => 100
));

$used_in_forms = array(
     'adminhtml_customer_address',
     'customer_address_edit',
     'customer_register_address'
    );

$attribute = Mage::getSingleton('eav/config')->getAttribute('customer_address', 'additional_managers');
$attribute->setData('used_in_forms', $used_in_forms); 
$attribute->save();

$installer->endSetup();
Foi útil?

Solução 2

Eu tenho o meu propósito, com um ligeiro mudou de interface usando o "Escolhido" jquery.

Download Escolhido Jquery chosen.jquery.js e escolhido.css, coloque esses arquivos em seu design, Adicioná-los para você no módulo respeitado .arquivo xml, na cabeça como

     <reference name="head">
        <!--            Adding js and css to use "chosen" instead of "select" for "multiselect" input types-->
        <action method="addItem">
            <type>skin_js</type>
            <name>js/chosen.jquery.js</name>
        </action>
        <action method="addItem">
            <type>skin_css</type>
            <name>css/chosen.css</name>
        </action>
    </reference>

ser cuidadoso sobre caminho dos arquivos, após isso, em seu respeitado vista (.phtml) utilize Escolhido

<script type="text/javascript">

jQuery(document).ready(function ($) {
    $(".myClass").chosen();
});

Isso irá alterar a interface de elementos de ter classe "minhaclasse", a saída pode gostar deste enter image description here

Outras dicas

você pode obter esta funcionalidade código abaixo

<select onchange="getSelectValues(this)"></select>



    function getSelectValues(select) {

          var options = select && select.options;
          var opt;

          for (var i=0, iLen=options.length; i<iLen; i++) {
            opt = options[i];

            if (opt.selected) {
               opttext +=opt.text+'<br />';
            }
          }
          document.getElementById('showdiv').innerHtml=opttext;
        }

fazendo com protótipo

$("_itemNaNadditional_managers").invoke('observe', 'change', function() {

    var options = $("_itemNaNadditional_managers").options;
              var opt;

              for (var i=0, iLen=options.length; i<iLen; i++) {
                opt = options[i];

                if (opt.selected) {
                   opttext +=opt.text+'<br />';
                }
              }
              document.getElementById('showdiv').innerHtml=opttext;

});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top