我正在开发一个小网页,从几个文件中读取数据并将其渲染到网站中。在该网站中,用户必须能够选择一个或多个项目并执行一些工作(更改名称,附加值等)。我已经完成了大部分工作,但现在我遇到了问题。我有这样的表格:
<div id="inside">
% foreach my $value ( @{ stash('tagitems') } ) {
<div id="inside">
%= form_for 'save' => begin
<input type="radio" name="radioid">
%= hidden_field 'id' => $indexnum
%= input_tag 'tag', value=>"$value", size=>"50%"
%= submit_button 'Save changes'
<%= select_field 'levelSelected' => [ @{ stash('levelsArray') }] %>
<button type="submit" form="insertForm">Insert</button>
% end
<form action="/insert" id="insertForm"></form>
</div>
% $indexnum += 1;
% }
我将所有内容渲染出来并且没问题。我可以使用保存表单(路由到更改它的名称的子名称。问题出在 inserform 。插入应该检查每个单选按钮它是否已经过了选中并取值标记和 levelSelected 。
我该怎么做?
感谢。
修改:
所以,我需要只有一个插入按钮(而不是每个项目一个),找出所选的任何单选按钮,并在单击提交按钮时获取所有已检查项目(tag和levelSelected)的信息。
EDIT2 - 有效的代码: 我找到了办法。代码在这里:
%= form_for 'save' => begin
<button type="submit" formaction="insert">Insert</button>
% foreach my $value ( @{ stash('tagitems') } ) {
<div id="inside">
<input type="checkbox" name="insert">
%= hidden_field 'id' => $indexnum
%= input_tag 'tag', value=>"$value", size=>"50%"
<button type="submit" formaction="save">save</button>
<%= select_field 'levelSelected' => [ @{ stash('levelsArray') }] %>
</div>
% }
% end
</form>
答案 0 :(得分:0)
这可以使用以下代码完成:
%= form_for 'save' => begin
<button type="submit" formaction="insert">Insert</button>
% foreach my $value ( @{ stash('tagitems') } ) {
<div id="inside">
<input type="checkbox" name="insert">
%= hidden_field 'id' => $indexnum
%= input_tag 'tag', value=>"$value", size=>"50%"
<button type="submit" formaction="save">save</button>
<%= select_field 'levelSelected' => [ @{ stash('levelsArray') }] %>
</div>
% }
% end
</form>
然后,在控制器中:
get '/insert' => sub {
my $mojo = shift;
my @all_values;
foreach my $field ('id', 'insert', 'tag', 'levelSelected') {
@all_values = @{$mojo->every_param($field)};
print Dumper (@all_values);
}
};