2013-07-25 52 views
0

我有一個基於表格的表單,我打算將數據輸入到我的應用程序中。每個<tr>都是通過Javascript爲我想添加的每個項目動態添加的。但是,我無法弄清楚如何管理髮布數據。例如,我有這樣的:Sinatra/Datamapper:解析表格形式

<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對象?

回答

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哈希贏得」沒有數字鍵)。

相關的js代碼很容易通過google搜索「javascript add form fields」找到。以下是帶編號字段名稱的示例:http://www.randomsnippets.com/2008/02/21/how-to-dynamically-add-form-elements-via-javascript/