Jquery tableDnD — Как создать ajax с идентификатором и позицией ondrop?

#javascript #jquery-ui #jquery #ruby-on-rails-3.1

#javascript #jquery-пользовательский интерфейс #jquery #ruby-on-rails-3.1

Вопрос:

Мой код:

   <script type="text/javascript">
$(document).ready(function() {
    // Initialise the table
    $('#admintabel').tableDnD({
        onDrop: function(table, row) {

        }
    });

});
</script>
  

Как мне создать вызов ajax для примера /sort с параметрами position и ID в has, например, так: [position, ID] onDrop? И какой должна быть моя таблица.

Обновить:

Я пытаюсь создать массив, подобный:

 BREDBANDS[id]   1
BREDBANDS[id]   2
BREDBANDS[id]   3
  

Мои текущие тестовые данные:

 data: {
                  BREDBANDS: [1, 2, 3]                  },
  

И он публикует это:

 BREDBANDS[] 1
BREDBANDS[] 2
BREDBANDS[] 3
  

Что выдает ошибку 500.

Мое действие Rails, в которое отправляются данные:

   def sort
  params[:bredbands].each_with_index do |id, index|
    Bredband.update_all(['position=?', index 1], ['id=?', id])
  end
  render :nothing => true
end
  

Ответ №1:

Трудно понять, что вы на самом деле спрашиваете, но выполнение Ajax-запроса должно выполняться любым из этих двух способов:

 $.ajax({
    type: "GET",
    url: "/sort?"   $.tableDnD.serialize(),
    success: function(){
        ...
    }
});
  

или

 $.ajax({
    type: "POST",
    url: "/sort",
    data: $("tr", "$admintabel").map(function(){
        return this.id;
    }),
    success: function(){
        ...
    }
});
  

Но, как кажется, вам нужно предоставить идентификаторы своим TR элементам. Тогда вы должны быть в состоянии вызвать это:

 $.tableDnD.serialize();
  

который будет сериализовать данные таблицы и ее идентификаторы строк.

Комментарии:

1. Как опубликовать массив всех идентификаторов?

2. Вот моя таблица pastie.org/2675438 Я хочу опубликовать идентификаторы, и в своем действии я вызываю с помощью index для обновления заказа.

3. @Railsbeginner: Проверьте мой отредактированный ответ. И проверьте примеры taleDnD и код, стоящий за ними, и вы увидите, как это работает.

4. Я обновил свой вопрос. Я пытаюсь создать правильный post-запрос, который не вызывает ошибку 500.