0

我有一个表格,显示在上面的复选框中选择的项目的数据,如 a[]、b[]、c[]。最初,当页面首次加载时,表格显示为空。进行复选框选择时,表格会显示选择的数据。然后,当我取消选中所有复选框并按显示时,表格显示应该是空的。

因此,在控制器中,复选框选择的变量是>

@selected_brands = 参数[:brands] || 会话[:品牌] || {}

您可能意识到,params[] 和 session[] 是视图中表单提交的值。{} -> 未选中任何复选框时。再次在控制器中,我有这个 @products = Product.find_all_by_brand(@selected_brands.keys)

我遇到的问题是,当我取消选中这些框时,按照我之前所做的选择,表格会显示上一个会话的数据,而不是一个空表格。我不做什么?

4

1 回答 1

1

您遇到了一个困扰很多人的 HTML 问题:当您取消选中所有复选框时,不会向服务器发送任何内容,因此不会记录任何更改,因此仍会记录最后的情况。

有很多解决方案(事件、javascript、服务器端代码),所以我的建议是将搜索范围扩大到通用 html 如何最好地处理这种情况。

如果您不喜欢 Javascript,并且对过多的 db-actions 没有问题,请删除该产品的所有选定品牌,并在获得此结果时重新应用选定的品牌。

于 2012-08-10T08:37:18.070 回答