【发布时间】:2012-03-17 14:37:17
【问题描述】:
如何使用 AJAX 更新以下大表(10 行 X 30 列)的每个单元格?
<table>
<tr>
<td>puts @table[0][0]</td>
<td>puts @table[0][1]</td>
... 27 columns go here
<td>puts @table[0][29]</td>
</tr>
... 8 rows go here
<tr>
<td>puts @table[9][0]</td>
<td>puts @table[9][1]</td>
... 27 columns go here
<td>puts @table[9][29]</td>
</tr>
</table>
我可以通过给它一个特定的 id 来更新第 0 行和第 0 列的单元格,如下所示
<td id="r0c0">puts @table[0][0]</td>
并使用以下 javascript,它工作正常
document.getElementById("r0c0").innerHTML = '<%= @new_r0c0_value %>'
但由于表格非常大(300 个单元格),我正在寻找一个想法,如何在不使用特定 ID 标识每个表格单元格的情况下从一组值更新 300 个单元格。
任何人都知道如何在 AJAX 响应中传递一个数组以及如何使用该 AJAX 响应更新这个大表?
【问题讨论】:
-
您能否为表格构建完整的标记并将其发送回客户端?然后,您将删除现有的表,只需将服务器发送的“
...
”字符串拖放到页面中。不知道 Rails,但我在 JSP 中做过。否则你可以使用数据表插件(如 YUI DataTable),它通常支持 ajax 加载和更新。 -
你确定你收到了来自 ajax 的响应吗??如果是这样,您如何获得 rails 变量??
-
@dku.rajkumar :是的,我很确定;例如,“@new_r0c0_value”是在我称为“update_values”的控制器方法中计算的,它适用于同一表单中的所有其他字段
-
@Tony R:感谢您的及时回复;这看起来是个好主意,我会探索一下。
标签: javascript ruby-on-rails ajax html-table