jQuery MultiSelect - выводить данные в том порядке, в котором они были выбраны

0

Я использую jQuery MultiSelect с этой страницы http://loudev.com/ - визуально все работает отлично, но мне нужно выводить данные в том порядке, в котором они были выбраны.

Обходной путь был опубликован в этой статье здесь: jquery multiselect выбранный порядок данных, но я новичок и нуждаюсь в некоторой помощи для реализации решения.

В идеале я хотел бы выводить выбранные элементы в текстовое поле. Буду признателен за любую оказанную помощь.

<html>
<link href="multiselect.css" media="screen" rel="stylesheet" type="text/css">

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<script src="jquery.multiselect.js"></script>

<script type="text/javascript">
    $(function() {
        $('#keep-order').multiSelect({ keepOrder: true });  
    });
</script>

<script>
    $(function(){
        $('#keep-order').multiSelect({
          afterSelect: function(value, text){
            var get_val = $("#multiple_value").val();
            var hidden_val = (get_val != "") ? get_val+"," : get_val;
            $("#multiple_value").val(hidden_val+""+value);
          },
          afterDeselect: function(value, text){
            var get_val = $("#multiple_value").val();
            var new_val = get_val.replace(value, "");
            $("#multiple_value").val(new_val);
          }
        });
    });     
</script>


</head>

<body>

<form method="post">
    <select multiple="multiple" id="keep-order" name="keeporder[]">
      <option value='elem_1'>elem 1</option>
      <option value='elem_2'>elem 2</option>
      <option value='elem_3'>elem 3</option>
      <option value='elem_4'>elem 4</option>
      <option value='elem_5'>elem 5</option>
      <option value='elem_6'>elem 6</option>
      <option value='elem_7'>elem 7</option>
      <option value='elem_8'>elem 8</option>
      <option value='elem_9'>elem 9</option>
      <option value='elem_10'>elem 10</option>
    </select>
    <input type="hidden" name="multiple_value" id="multiple_value" />
    <br/>
    <input type="submit" name="submit" value="Submit" />
</form>

<?php
    if(isset($_POST['submit'])){
        $hidden = $_POST['multiple_value']; //get the values from the hidden field
        $hidden_in_array = explode(",", $hidden); //convert the values into array       
        $filter_array = array_filter($hidden_in_array); //remove empty index 
        $reset_keys = array_values($filter_array); //reset the array key 
        var_dump($reset_keys); //the result     
    }
?>

</body>
</html>
  • 0
    какой порядок вы получаете при запуске этого кода?
  • 0
    какая у тебя проблема?
Показать ещё 1 комментарий
Теги:
jquery-multiselect

1 ответ

0
Лучший ответ

значения хранятся в массиве Keeporder, поэтому вам нужно получить массив keeporder в PHP-коде

$hidden=array();
$hidden = $_POST['keeporder']; //get the values from the keeporder
print_r($hidden);

Пример скрипта php

  • 0
    Работает как шарм. Большое спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню