使用 mojolicious 从动态生成的项目中获取多个值

Get multiple values from dynamically generated items with mojolicious

我正在开发一个小网页,它从几个文件中读取数据并将其呈现到网站中。在该网站中,用户必须能够选择一个或多个项目并对这些项目执行一些操作(更改名称、附加值等)。我已经能够完成大部分工作,但现在我遇到了一个问题。我有这个表格:

<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;
    % }

我正在渲染所有内容,没问题。我可以使用保存表单(路由到更改其名称的 sub。问题出在 inserform。插入应该检查它检查的每个单选按钮并获取值taglevelSelected.

我该怎么做?

谢谢。

编辑

我有多个这样的实例:

所以,我只需要一个插入按钮(而不是每个项目一个),它可以找出选中的任何单选按钮,并在单击提交按钮时获取所有选中项目(标记和级别选择)的信息。

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>

这可以使用这段代码来完成:

%= 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);
  }
};