Pregunta

Mi lista de múltiples selecciones es muy grande, es difícil descubrir qué opciones están seleccionadas, quiero cambiarla a algo de lo siguiente, ¿es posible? Puede ser cualquier lugar donde, pero actualmente tengo un tipo de atributo "Customer_Address" personalizado "Multiselect", ingrese la descripción de la imagen aquí

Estoy creando mi atributo como este mi script de 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();

¿Fue útil?

Solución 2

Tengo mi propósito con una ligera interfaz cambiada utilizando "elegido" jquery.

Descargar elegido jQuery elegido.jquery.js y elegante.csss, coloque estos archivos en su diseño, agreguelos al módulo en el archivo .xml respetado, en la cabeza 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>

Tenga cuidado de Ruta de los archivos , después de esto, en su vista respetada ( .phtml ), elija

<script type="text/javascript">

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

Esto cambiará la interfaz de elementos que teniendo la clase "MyClass", la salida podría gustarle esta ingrese la descripción de la imagen aquí

Otros consejos

Puede lograr esta funcionalidad por debajo del código

<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;
        }

Haciendo con prototipo

$("_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 bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top