Row selection dataTable rails - как получить список идентификаторов выбранных строк

Здравствуйте, Я новичок в ruby ​​on rails и javascript и хочу использовать dataTable для выбора нескольких строк в моей таблице. Затем я хотел бы получить список всех идентификаторов выбранных строк.

Мне удалось выбрать несколько строк благодаря коду, доступному на веб-сайте dataTable. Это код:

<script>
$(document).ready(function() {

  var selected =[];

  $("#assureur").dataTable({
    
    "rowCallback": function(row,data){
      if($.inArray(data.DT_RowId, selected) !==-1){
        $(row).addClass('selected');
      } 
    }
  });

  $('#assureur tbody').on('click', 'tr', function(){
    var id = this.id;
    var index = $.inArray(id, selected);

    if( index === -1){
      selected.push(id);
    } else {
      selected.splice(index,1);
    }

    $(this).toggleClass('selected');
  });

});
</script>

Однако я не понимаю, как получить список выбранных строк.

Я искал в Интернете, но я не понимаю, как работает их код. Они говорят об использовании TableTool и fnGetSelected, но я не знаю, как это использовать.

Я читал о alert, но я не хочу показывать предупреждение. Я бы предпочел иметь массив со всеми идентификаторами выбранных строк, чтобы я мог использовать этот массив позже.

Тогда как я могу использовать этот массив больше не с javascript, а с языком Ruby? Я читал об использовании Ajax или использовании тега скрытого поля, а затем извлекал параметры из контроллера... но как это работает? Что мне нужно поставить на свой контроллер, чтобы получить переменную $var, определенную в моем javascript?

спасибо за помощь


person GDMN    schedule 10.08.2015    source источник


Ответы (1)


Вы можете использовать вызов Jquery:

var $yourVar = $("#assureur").find('tbody tr.selected');
person The Fabio    schedule 10.08.2015
comment
Спасибо. Итак, в $yourVar у меня будут все идентификаторы всех выбранных строк. Затем я хочу показать этот массив в представлении. Я читал, что можно передать переменную javascript в Ruby только с помощью контроллера. Можете ли вы объяснить мне, как это сделать? Потому что опять же я не понимаю, что говорят в интернете, это выглядит довольно сложно. Они говорят об использовании тега скрытого поля, который выглядит самым простым способом справиться с этим? - person GDMN; 10.08.2015
comment
если вам нужно отправить переменную javascript на сервер, вам нужно будет вызвать POST на сервер, содержащий вашу переменную. Например, отправка тега формы с атрибутом remore=true или использование вызова ajax. этот сайт является хорошим руководством для вас, чтобы начать: gotealeaf.com/blog/ - person The Fabio; 10.08.2015
comment
Разве нельзя написать div в моих представлениях с id=selection, а затем написать в моем сценарии: $('#selection').html($yourVar)? - person GDMN; 10.08.2015
comment
Я советую вам поэкспериментировать с JQuery отдельно. Вы можете создать текстовый файл с вашей таблицей и некоторым кодом Javascript. Затем переименуйте его в .html и откройте в браузере. После этого вы можете немного поиграть с ней, чтобы понять, что находится внутри переменной $yourVar и как манипулировать ее информацией. - person The Fabio; 11.08.2015