Ruby on Rails + Jquery: сохранение данных из перетаскиваемых списков - PullRequest
2 голосов
/ 25 марта 2010

Я пытаюсь сохранить данные в базу данных MySQL в Rails, когда пользователь перетаскивает элементы из разных списков. Я использую приведенный ниже скрипт Jquery и HTML:

<script>
 $(document).ready(function() {
 $("#draggable").draggable( { connectToSortable: 'ul#myList', helper:'clone' } );
 $("#myList").sortable();

});
</script>

HTML:

<ul>
  <li id="draggable">Drag me to myList</li>
</ul>

<ul id="myList">
 <li id="item-1">item 1</li>
 <li id="item-2">item 2</li>
</ul>

Я гуглю последние несколько часов, но, похоже, не могу найти способ сохранения данных между несколькими списками с помощью Rails. Есть идеи?

1 Ответ

5 голосов
/ 25 марта 2010

Вам нужно, чтобы код на стороне сервера был в курсе изменений. Вы можете использовать событие stop для sortable, чтобы выполнить вызов ajax, например:

<script>
    $(document).ready(function() {
        $("#draggable").draggable({
            connectToSortable: 'ul#myList',
            helper:'clone'
        });

        $("#myList").sortable({
            stop: function(event, ui){
                //put your AJAX call here
            }
        });
    });
</script>

Затем вам нужно настроить соответствующее действие на стороне сервера, чтобы ответить на этот ответ AJAX и обновить соответствующие данные в вашей базе данных. Что касается кода, который вы показали, он только изменяет структуру DOM в браузере, он ничего не делает на стороне сервера, где хранятся данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...