0

Perl (および Dancer) と HTML を使用してフォームを作成しています。私のフォームには、次のようなフィールドがいくつかあります。

<input type="text" name="keywords" id="keywords" value="<% keywords | html %>"/>

<select multiple="multiple" id="sentences" name="sentences" size="3"/>
    <% IF list_of_sentences %>
         <% FOREACH sentence IN list_of_sentences %>
              <option value=<% sentence %>/>
         <% END %>
    <% END %>
</select>

もちろん、これらは独自の部門内にあり、さらに多くのコードがありますが、これらは私が持っているものの本質です。

これらはmain.ttusingmyApp.pmと相互作用する場所であり、前後に渡されるパラメーターがあります (例: keywordsand list_of_sentenceshere)。コードは 2 つの div で設定されています。1 つはフォームで、もう 1 つは純粋に出力を表示するためのものです。フォームが送信されると、出力は正しく表示されますが、選択フィールドの選択は保持されません。

したがって、私がやりたいことは、「複数選択」から選択された選択が選択されたままになるようにすることです。

例として、「入力」キーワード フィールドでは、 using を使用してファイルから値が返されたため、値が保持されてい.pmます。これは、html コードで機能します。を使用して複数選択に対して同じことを試みましたが、これは空白のフィールドを返します。param("keywords")template 'main' ...value="<% keywords | html %>"param("sentences")

問題の推測を危険にさらすのは、複数のオプションがあり、おそらく.pm最初にファイルからオプションを取得しているためですが、まだ解決策が見つからないため、どんな助けも歓迎します。

4

1 に答える 1

2

selected="selected"オプション要素の属性を使用します。文の名前と、オプションを選択した状態にする必要があるかどうかを示すフラグの両方を渡すことをお勧めします。例えば:

<% IF list_of_sentences %>
  <% FOREACH sentence IN list_of_sentences %>
    <option value="<% sentence.value %>"<% IF sentence.is_selected %> selected="selected"<% END %> />
  <% END %>
<% END %>

また、文には次のデータ構造を使用します。

{ value => $value, is_selected => 0|1 }
于 2013-03-04T16:22:59.087 に答える