TripletaiL Japanese Web Application Framework

フォームの利用(3) - チュートリアル

フォームに入力された情報を、同じフォームに出力してみましょう。

Webブラウザでアクセスし、表示されるフォームを適当に入力あるいはチェックをして送信ボタンを押します。

送信後の表示される画面のHTMLソースから、入力された文字列やchecked属性が付与されているのを確認しましょう。

main.cgi

#!/usr/local/bin/perl

use strict;
use warnings;
use Tripletail qw(/dev/null);

$TL->startCgi(
    -main => \&main,
);

sub main
{
    $TL->dispatch($CGI->get('Command'), default => 'Top');
}

sub DoTop
{
    &DispTop('Top');
}

sub DoSearch
{
    &DispTop('Search');
}

sub DispTop
{
    my $mode = shift;

    my $t = $TL->newTemplate('template.html', 'utf8');
    $t->addHiddenForm($TL->newForm->set(Command => 'Search'));
    if ($mode eq 'Top') {
        $t->setForm($t->getForm);
    } else {
        # $CGIに対しては直接操作を行えないので、cloneでコピーしてから操作する
        my $form = $CGI->clone;
        $form->delete('Command');
        $t->setForm($form);
    }
    $t->flush;
}

template.html

<!DOCTYPE html>
<HTML>
  <BODY>
    <form method="post">
      <input type="text" name="word">
      <br>
      <input type="radio" name="radio" value="1">
      <input type="radio" name="radio" value="2">
      <br>
      <select name="list">
        <option value="list1">リスト1</option>
        <option value="list2">リスト2</option>
      </select>
      <br>
      <input type="checkbox" name="checkbox" value="checkbox1">
      <input type="checkbox" name="checkbox" value="checkbox2">
      <input type="checkbox" name="checkbox" value="checkbox3">
      <br>
      <input type="submit" name="submit" value="送信">
    </form>
  </BODY>
</HTML>

一覧へ戻る 次のチュートリアルへ