【问题标题】:Get multiple values from dynamically generated items with mojolicious使用 mojolicious 从动态生成的项目中获取多个值
【发布时间】:2018-02-05 09:09:03
【问题描述】:

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

<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

我该怎么做?

谢谢。

编辑

我有多个如下所示的实例:

所以,我只需要一个插入按钮(而不是每个项目一个),它可以找出选中的单选按钮,并在单击提交按钮时获取所有选中项目(标签和 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>

【问题讨论】:

  • 您能否edit 显示您正在尝试创建的 HTML sn-p 的问题?我不确定我是否理解您的问题描述。
  • 已经写好了,希望现在更容易理解。
  • 您可以回答自己的问题。请将工作代码从问题中移到答案中,并解释其工作原理。明天你可以接受自己的答案。

标签: html forms perl mojolicious


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多