我有一个基于表格的表单,我打算将数据输入到我的应用程序中。每个<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对象?
答案 0 :(得分:1)
最好在这里使用'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/