コードを単純化します。
<input type="checkbox" name="cb" value="1">
定義により、チェックボックスがチェックされている場合、ブラウザは値を送信し、チェックボックスがチェックされていない場合は何も送信しません。「何も」を「0 」に変換したいので、Mason2コンポーネントで次のようにします。
has 'cb';
#... and where you need the 0/1 checkbox value simply use the $.cb
my $cb01 = $.cb ? 1 : 0;
したがって、チェックボックスがクリックされると 1 になり、それ以外の場合は 0 になります。
完全な例を追加します。
Mason2 コンポーネント: cbf.mc
#checkbox フォーム
<form action="cbs">
<input type="checkbox" name="cb" value="1">
<input type="submit">
</form>
Mason2 コンポーネント: cbs.mc
#checkbox 表示
<%class>
has 'cb';
</%class>
The checkbox value is: <% $.cb ? 1 : 0 %>
上記の 2 つのコンポーネントを作成し、ブラウザで次の場所を指定します。
http://url/path/to/cbf
シンプルな形になります。ここで、チェックを外したままにするか、チェックボックスをオンにして (必要に応じて)、送信を押します。コンポーネントcbs.mc
は値を表示します。チェックすると、「0」でない場合に「1」が返されます。
本当に簡単です。
または、次のことを試してくださいcbs.mc
<%class>
has 'cb' => (default => 0);
</%class>
The chebox value is: <% $.cb %>
より明確にデフォルト値を採用。どちらの例も実用的なソリューションです。