0

これは、左側の列にラベルがあり、右側の列にフォーム要素がある 2 列のテーブルです。椅子の色のラジオ ボタンをすべて 2 列目に表示しようとしています。しかし、彼らは最初の列に行き着き続けます。

関連するコードは次のとおりです。

use HTML::Template;
use CGI qw(:standard);

my $form = '';

$form .= start_form .
  table ({-width=>'100%'},
    Tr([
      td (b ('Chair color:')),
        td (radio_group(-name => 'certificate_type',
                        -values=>['blue','white','green'],)),
      td ([b ('Username:'),  $ENV{REMOTE_USER}]),
      td ([b ('Full name:'), $PARAMS{CURRENT_FULLNAME}]),
      td ([b ('Email:'),     $PARAMS{EMAIL}]),
   ])) . submit('Submit') . reset . end_form;

(さらに良いのは、ボタンを 2 列目に配置し、垂直方向に積み重ねることです。)

4

1 に答える 1

1

2 列目の 3 つのラジオ ボタンの左側の 1 列目に「椅子の色」が必要だと思いますか?

問題は、「椅子の色」とradio_groupを 2 つの別々tdの要素に配置したため、それらが別々の行に表示されることです。

td最後の 3 行があるため、これらを無名配列で囲んで 1 つの呼び出しに渡す必要があります。

-columns => 1また、 to のパラメーターは、radio_groupそれらを単一の列に強制します。

このコードは、必要なことを行うようです。

my $form =
    start_form
  . table( {-width=>'100%'},
      Tr([
        td([
          b('Chair color:'),
          radio_group(
            -name => 'certificate_type',
            -values => [ qw/ blue  white  green / ],
            -columns => 1
          )
        ]),
        td([b('Username:'),  'remote user']),
        td([b('Full name:'), 'current fullname']),
        td([b('Email:'),     'email']),
      ])
    )
  . submit('Submit')
  . reset
  . end_form;
于 2012-05-29T20:35:28.147 に答える