два сортируемых списка должны получить параметры сериализации, используя jquery-ui - PullRequest
0 голосов
/ 08 апреля 2010

Можете ли вы помочь мне с этими кодами:

приложение / просмотров / администратор / статьи / position.html.haml

- form_tag update_position_admin_articles_path do
  .grid_5.alpha{:id => 'article-container'}
    %h3 Articles
    %ul#articles.connectedSortable
      - for article in @articles
        = content_tag(:li, article[0], :id => article[1], :class => 'ui-state-default')
  .grid_5.omega{:id => 'feature-container'}
    %h3 Featured Articles
    %ul#features.connectedSortable
      - for feature in @features
        = content_tag(:li, feature[0], :id => feature[1], :class => 'ui-state-highlight')
  %br.clear
  = submit_tag "Update Position"

публичный / application.js

$(function() { 
    $("#articles, #features").sortable({ 
        connectWith: '.connectedSortable',
        update: function(event, ui) { 
                console.log($(this).sortable("serialize"));
            }
        }) 
    });

Это два сортируемых списка, и мне нужно, чтобы параметр сериализации этих списков передавался при нажатии кнопки отправки, но я всегда получаю "(an empty string)" на console.log(). Я использую jQuery-ui для этой функции.

1 Ответ

0 голосов
/ 09 апреля 2010

На всякий случай, если кто-нибудь столкнется с этой же проблемой. Решил эту проблему с помощью этого кода:

приложение / просмотров / администратор / статьи / position.html.haml

- form_tag update_position_admin_articles_path do
  .grid_5.alpha{:id => 'article-container'}
    %h3 Articles
    %ul#articles.connectedSortable
      - for article in @articles
        = content_tag(:li, article[0], :id => article[1], :class => 'ui-state-default')
  .grid_5.omega{:id => 'feature-container'}
    %h3 Featured Articles
    %ul#features.connectedSortable
      - for feature in @features
        = content_tag(:li, feature[0], :id => feature[1], :class => 'ui-state-highlight')
  = hidden_field_tag 'sort[articles]', ''
  = hidden_field_tag 'sort[features]', ''
  %br.clear
  = submit_tag "Update Position"

публичный / application.js

$(function() { 
    $("#articles, #features").sortable({ 
        connectWith: '.connectedSortable',
        update: function(element, ui) { 
                var result = $(this).sortable('toArray');
                var data = {};
                data[this.id] = result;
                document.getElementById('sort_' + this.id).value = result;
            }
        }) 
    });
...