根据用户输入提交可变长度表单

时间:2011-09-20 20:54:29

标签: java php ruby-on-rails playframework

我正试图绕过这个。我的语言是使用PlayFramework的Java,但我认为使用php或ruby on rails的任何答案都会让我朝着正确的方向前进。基本上,用户可以添加或删除此形式的托盘数量。每个选项卡也需要进行一些javavscript计算。使用输入更改jquery事件触发所有内容,因此没有提交按钮。我的第一个模型使用了UUID,但这似乎让我无处可去。

enter image description here

enter image description here

每个标签对于进行周边计算都是可靠的。我的第一个问题是如何为特定选项卡调用javascript。我首先使用UUID和每个选项卡的单独脚本。这似乎不正确。

我的第二个问题是提交这些数据。显然名称参数需要不同。所以我对此感到头疼。每个托盘都会被标记为id,所以我并不担心后端,因为我正在试图弄清楚前端和控制器的结构。

任何帮助都会很棒。感谢。

2 个答案:

答案 0 :(得分:1)

对于提交,我假设您正在尝试弄清楚如何保存并传递bean中的数据。如果有一个字段如下:

LinkedHashMap<String, LinkedHashMap<String, Object>> field;

内部地图将是托盘上的字段列表。外部地图是托盘。

答案 1 :(得分:1)

在javascript部分,假设所有选项卡具有相同的结构,创建一个接收和id(选项卡的id)作为参数的通用方法,然后从计算中检索适当的字段。类似的东西:

function doCalc(tabId){ //assumes jquery
  var tab = $("#"+tabId);
  var field1 = $("#"+tabId+"_field1");
  var field2 = $("#"+tabId+"_field2");
  //...etc to retrieve tabs
}

该方法假定在创建选项卡“tabId”及其元素时,使用公式“tabId_”生成元素的id,这有助于找到它们。

关于提交,使用Play!您应该检查此section有关Ajax请求的信息。它可以像进行计算(上面的方法)一样简单,最后通过Ajax调用Play方法。此方法将获取托盘(给定选项卡的托盘)的所有参数(id,值等)并保存。