2017-08-28 52 views
1

我正在開發一個小型網頁,從幾個文件中讀取數據並將其呈現到網站中。在該網站中,用戶必須能夠選擇一個或多個項目並執行一些工作(更改名稱,附加值等)。我已經能夠完成大部分工作,但現在我面臨一個問題。我有這種形式:從動態生成的項目獲取多個值與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; 
    % } 

我得到一切呈現,並沒有問題。我可以用節省的形式(即路線,改變它的名字一分。問題是與inserform所述的插件應該檢查​​,它的檢查每一個單選按鈕,並把價值標籤levelSelected

我怎樣才能做到這一點

感謝

編輯:?

我有多個實例看起來像這樣: enter image description here

所以,我需要只有一個插入按鈕(而不是每個項目一個)找出任何單選按鈕被選中,並得到所有的信息檢查的項目(標籤和levelSelected)點擊時提交按鈕。

編輯2 - 代碼工作: 我找到了一種方法來做到這一點。該代碼是在這裏:

%= 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

莫非你也許[編輯]的問題顯示您正在嘗試創建的HTML片段?我不確定我瞭解你的問題描述。 – amon

+0

已經完成,希望現在能夠更容易理解。 –

+0

你可以回答你自己的問題。請將問題中的工作代碼移到答案中,並解釋其工作原因。你明天可以接受你自己的答案。 – simbabque

回答

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); 
    } 
}; 
相關問題