gpt4 book ai didi

jquery - 复选框和 Ajax

转载 作者:行者123 更新时间:2023-12-01 04:21:54 24 4
gpt4 key购买 nike

我正在创建一个 Rails 3.1 Ruby 1.9.2 Web 应用程序。我有一个名为 BulkWarehouse 的模型,并且有一个显示数据库上所有 BulkWarehouse 对象的 View 。这是我的 Controller :

def index
@bulk_all = BulkWarehouse.all
@bulk_out = Array.new
end

这是我的观点:

 <%= form_for :warehouse, :url => warehouses_path, :html => { :class => :form } do |f| -%>
<div class="content">
<h2 class="title"><%= t("web-app-theme.all", :default => "Prodotti") %> da caricare a sistema</h2>
<%= f.fields_for 'hardware' do |hw|%>
<div class="group">
<%= hw.label 'brand', t("activerecord.attributes.warehouse.hardware.brand_id", :default => "Marca"), :class => :label %>
<%= hw.select 'brand_id', options_for_select(@brands),{:include_blank => true}, :class => 'text_field' %>
<span class="description">Marca dell'hardware</span>
</div>
<div class="group">
<%= hw.label 'model', t("activerecord.attributes.warehouse.hardware.brand_id", :default => "Modello"), :class => :label %>
<%= hw.select 'model', options_for_select(@hardwares),{:include_blank => true}, :class => 'text_field' %>
<span class="description">Marca dell'hardware</span>
</div>
<% end %>


<div class="group">
<%= f.label 'state', t("activerecord.attributes.warehouse.state_id", :default => "State"), :class => :label %>
<%= f.select('state_id', @states,{:include_blank => true}, :class =>'text_field') %>
<span class="description">In che stato si trova ?</span>
</div>
<div class="group">
<%= f.label 'position', t("activerecord.attributes.warehouse.registry_to_id", :default => "Magazzino fisico"), :class => :label %>
<%= f.select('position_id', @positions,{:include_blank => false}, :class =>'text_field') %>
</div>



<div class="group">
<%= f.label 'logicalwarehouse', t("activerecord.attributes.warehouse.logicalwarehouse_id", :default => "Magazzino Logico"), :class => :label %>
<%= f.select('logicalwarehouse_id', @logicalwarehouses,{:include_blank => false}, :class =>'text_field',:order =>:id) %>
<span class="description">In quale magazzino logico è stato spostato?</span>
</div>

<div class="group">
<%= f.label 'extra', t("activerecord.attributes.warehouse.extra_id", :default => "Extra"), :class => :label %>
<%= f.select('extra_id', @extras,{:include_blank => false}, :class =>'text_field') %>
<span class="description">Campo Extra</span>
</div>
<% end -%>





<table class="table">
<tr>
<th class="first">Asset</th>
<th>
<%= t("activerecord.attributes.logicalwarehouse.name", :default => t("activerecord.labels.name", :default => "Seriale")) %>
</th>

<th class="last">&nbsp;</th>
</tr>
</tr>
<%
@bulk_objects.each do |bulk_warehouse|
bulk_error = @wh_errors[:"bulk_warehouse#{@count}"] if @wh_errors
-%>


<tr class="<%= cycle("odd", "even") %>">
<%= hidden_field_tag("bulk_warehouse_id#{@count}",bulk_warehouse.id) %>
<td><%= text_field_tag("bulk_warehouse_serial#{@count}", bulk_warehouse.serial, :disabled => true) %></td>
<td><%= text_field_tag("bulk_warehouse_asset#{@count}", bulk_warehouse.asset, :disabled => true)%></td>


<td><%= check_box_tag "enable_record#{@count}",1,false,{:onclick => "bulk_warehouse_serial#{@count}.disabled =
bulk_warehouse_asset#{@count}.disabled =
!this.checked;"}%></td>
<td class="last">
<%= link_to "#{t("web-app-theme.delete", :default => "Delete")}", bulk_warehouse_path(bulk_warehouse), :method => :delete, :confirm => "#{t("web-app-theme.confirm", :default => "Are you sure?")}" %>
</td>
<td><div class="fieldWithErrors" style="color=red"><%= bulk_error -%></div></td>

</tr>
</div>

<%
@count = @count +1
end
%>

</table>

<script>
$(document).ready(function() {
$('.pagination a').attr('data-remote', 'true');
});
</script>
<%= will_paginate @bulk_objects, :params=>{:id=>params[:id]} %>

正如您所看到的,@bulk_objects 中包含的每个bulk_warehouse 项目都有一个复选框标记。现在我希望当我单击复选框时,与复选框相关的bulk_warehouse对象必须附加到 Controller 中定义的@bulk_out数组。我知道我可以使用 Jquery 来做到这一点,但我不知道如何做。有人可以帮助我吗?

最佳答案

这里是一个 jquery 和使用 ajax 从 View 进行实时编辑/保存的 View 代码的示例。虽然我不确定这就是您要找的。

在 application.js 中:

 jQuery('#tranx_field').live('change', function() {
var attr_value = $(this).val();
var attr_name = $(this).next("input[id=attr_name]").val();
var tranx_id = $(this).parent().parent().parent().children("input[id=tranx_id]").val();

$.ajax({
url: "/tranxes/" + tranx_id,
dataType: "json",
type: "PUT",
processData: false,
contentType: "application/json",
data: "{\"tranx\":{\"" + attr_name + "\":\"" + attr_value + "\"}}"
});
});

查看代码:

<%= hidden_field_tag 'tranx_id', @tranx.id %>
<div class="row">
<div class="span6 id="left_col">
<b>Salesrep:</b>
<%= text_field_tag 'tranx_field', @tranx.salesrep,:class => "itemfieldsm" %>
<%= hidden_field_tag 'attr_name', "salesrep" %>
<br>

这里是帮助我解决这个问题的链接:http://blog.project-sierra.de/archives/1788

关于jquery - 复选框和 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com