multiple_select.module
<?php /** * Implementation of hook_menu() */ function multiple_select_menu() { $items = array(); $items['multiple_select'] = array( 'title' => 'multiple_select', 'page callback' => 'multiple_select', 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM, ); $items['multiple_select_submit'] = array( 'title' => 'multiple_select', 'page callback' => 'multiple_select_submit', 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM, ); return $items; } function multiple_select() { drupal_add_js(drupal_get_path('module', 'multiple_select') .'/multiple_select.js'); $out = '<form action="/multiple_select_submit" method="POST" id="multiple-select-form">'; $out .= '<select multiple id="select1" size="10">'; $out .= '<option value="gan2">gan2</option>'; $out .= '<option value="gan4">gan4</option>'; $out .= '<option value="gan5">gan5</option>'; $out .= '<option value="gan6">gan6</option>'; $out .= '<option value="gan7">gan7</option>'; $out .= '</select>'; $out .= '<select name="option_selected[]" multiple id="select2" size="10">'; $out .= '<option value="gan1">gan1</option>'; $out .= '<option value="gan3">gan3</option>'; $out .= '</select>'; $out .= '<p>'; $out .= '<a href="#" id="add"> >> </a> | '; $out .= '<a href="#" id="remove"> << </a>'; $out .= '<p>'; $out .= '<input type="submit">'; $out .= '</form>'; return $out; } function multiple_select_submit() { echo '<pre>'; print_r($_POST); echo '</pre>'; return 'hmm'; } ?>
multiple_select.js
Drupal.behaviors.multipleSelectLink = function(context) { $('#add').click(function() { return !$('#select1 option:selected').remove().appendTo('#select2'); }); $('#remove').click(function() { return !$('#select2 option:selected').remove().appendTo('#select1'); }); // automatically select all options in the second select box before submitting. $('#multiple-select-form').submit(function() { $('#select2 option').each(function(i) { $(this).attr('selected', 'selected'); }); }); };
Reference:
http://blog.jeremymartin.name/2008/02/easy-multi-select-transfer-with-jquery.html
No comments:
Post a Comment