我有一个基于表的表单,我打算用它将数据输入到我的应用程序中。每个<tr>
都是通过Javascript为我想要添加的每个项目动态添加的。然而,我不知道如何管理发布数据。例如,我有这个:
<tr>
<td><input type="text" name="name1"></td>
<td><input type="text" name="value1"></td>
</tr>
<tr>
<td><input type="text" name="name2"></td>
<td><input type="text" name="value2"></td>
</tr>
我得到的params
是:
{ "name1" => "derp", "value1" => "herp", "name2" => "Edward James Olmos", "value2" => "Boss voice"}
如何将其解析为DataMapper对象?
这里最好使用"arrayed"名称,这样所有动态添加的字段都可以作为一个集合传递。有两种方法可以用数组名称来处理它,要么你自己编号:
<tr>
<td><input type="text" name="array_of_names[2]"></td>
<td><input type="text" name="array_of_values[2]"></td>
</tr>
(并将现在要添加的数字作为javascript中的全局变量进行跟踪)查看您将获得的params结构——在服务器端管理和连接会容易得多。
或者省略编号并使用以下内容:
<tr>
<td><input type="text" name="array_of_names[]"></td>
<td><input type="text" name="array_of_values[]"></td>
</tr>
虽然在前端更容易编码,但在服务器端将名称与值连接起来会有点困难(传递的params哈希没有数字键)。
通过谷歌搜索"javascript添加表单字段"很容易找到相关的js代码。下面是一个带有编号字段名的示例:http://www.randomsnippets.com/2008/02/21/how-to-dynamically-add-form-elements-via-javascript/