Listing 7: view-stories-form.html

%# -*- mmm-classes: mason -*-
<Head><Title>View latest news</Title></Head>

<Body>
<H1>View latest news</H1>

<Form method="POST" action="view-stories.html">

<P>From which category would you like to view news?</P>

	    <select name="category_id">
% foreach my $category (@categories) {
	    <option value="<% $category->{id} %>"><% $category->{name} %>
% }
	    </select>

<P>And how many items would you like to see?
<input type="text" name="how_many" size="2" maxlength="2"></P>

<input type="submit" value="View stories">

</Form>

</P>

</Body>

<%once> my $dbh; </%once>

<%init>
# Connect to the database, if we haven't already done so
$dbh = $m->comp("database-connect.comp");

# Get the list of categories
my $sql = "SELECT category_id, category_name ";
  $sql .= "FROM Categories ";
  $sql .= "ORDER BY category_name ";

my $sth = $dbh->prepare($sql);
$sth->execute;

my $row_ref;
my @categories;

# Put the list of categories into @categories
while ($row_ref = $sth->fetchrow_arrayref)
{
    my ($id, $name) = @$row_ref;
    push @categories, {id => $id,
                       name => $name};
}
</%init>
