Rails / jquery передает переменную (ID), собранную в jQuery, в контроллер / действие rails - PullRequest
4 голосов
/ 09 февраля 2010

Я новичок в AJAX и jQuery, поэтому, пожалуйста, извините, если это является базовым:

Я реализовал великолепную jgrid с помощью 2dconcepts (http://www.2dconcept.com/jquery-grid-rails-plugin). Теперь я хотел бы выбрать данные в моей таблице с помощью флажка - получить идентификаторы продукта (это работает нормально, я вижу предупреждение от handleSelection) ) и передать его в мое пользовательское действие в контроллере rails для редактирования указанных записей (очень похоже на railscast # 165 Райана Б.). Я просто понятия не имею, как мне это сделать.

<script type="text/javascript">
function handleSelection(id) {
alert('Open those up?:'+id);    
}
</script>


<% title "JGRID Table" %>
<%= jqgrid("Products", "products", "/products",
[
    { :field => "id", :label => "ID", :width => 40, :resizable => false },
    { :field => "vendorname", :width => 200, :label => "vendorname", :editable => true },
    { :field => "productname", :width => 230, :label => "productname", :editable => true },
    { :field => "metakeyword", :width => 250, :label => "metakeyword", :editable => true },
    { :field => "status", :width => 100, :label => "status", :editable => true, :edittype => "select", 
        :editoptions => { :value => [["inbox","inbox"], ["todo", "todo"], ["final","final"]] } },
    { :field => "category_id", :label => "category_id", :width => 100, :resizable => false, :editable => true }
],
{ :add => true, 
    :edit => true, 
    :inline_edit => true, 
    :delete => true, 
    :edit_url => "/products/post_data",
    :rows_per_page => 30,
    :height => 270,
    :selection_handler => "handleSelection", 
    :multi_selection => true }
)%>

Я думаю, мне нужно поместить пост-запрос в функцию и вызвать его примерно так:

<%= button_to_function('EDIT CHECKED', 'handleSelection(id)', {
:id => "products_select_button"}) %>

Но, честно говоря, даже эта кнопка не будет работать, так как она передает строку "products_select_button" в функцию, а не собранное значение ...

Ваша помощь очень ценится!

Val

"products_select_button"})%>

1 Ответ

1 голос
/ 25 августа 2011

Для отправки параметров на ваш контроллер вы всегда можете использовать функцию post jQuery, это очень легко реализовать в любой настройке

$.post("products/", { id: 1, name: "John" } );

Этот фрагмент кода отправляет параметр id и name вашему контроллеру продуктов с POST. В зависимости от того, как выглядит ваш контроллер, различные действия получат POST. Вы всегда можете сделать

rake -T

в вашем приложении rails, чтобы увидеть, какое действие обрабатывает POST. Я действительно не знаю, как выглядит окончательная сетка, но этот фрагмент кода JQuery может помочь вам начать?

$(document).ready(function() {
  $("#button").click(function() { // Submit button is pressed
    var grid_id = $("#grid").val(); // Grab value of the grid
    $.post("products/", { id : grid_id });  // Post the grid_id to your controller
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...