<yatt:envelope title="Submission form">
<div style="float: left; width: 65%;">
<yatt:req_form />
</div>
<yatt:sidenote />
</yatt:envelope>
<!yatt:widget req_form is_confirm="bool/0">
<form method="POST">
<div>
<yatt:text "name" is_confirm>
Your Name
</yatt:text>
<yatt:text "email" is_confirm>
E-Mail
</yatt:text>
<yatt:item>
<label>Gender</label>
<select name="gender">
<option &yatt:att_value_of(select,gender,0,{in,:sess_obj()});>-</option>
<option &yatt:att_value_of(select,gender,1,{in,:sess_obj()});>Female</option>
<option &yatt:att_value_of(select,gender,2,{in,:sess_obj()});>Male</option>
</select>
</yatt:item>
<yatt:item>
<label>Favorite Fruits</label>
<table>
<tr>
<td> </td>
<th class="top">Choose all you like</th>
<th class="top">Most Favorite</th>
</tr>
<yatt:foreach my=row list="&yatt:tsvfile(config/fruits);">
<tr>
<th class="left">&yatt:row[-1];</th>
<td class="center"><input &yatt:att_value_of(checkbox,fruits,:row[0],{in,:sess_obj()}); /></td>
<td class="center"><input &yatt:att_value_of(radio,fond_fruits,:row[0],{in,:sess_obj()}); /></td>
</tr>
</yatt:foreach>
</table>
</yatt:item>
<yatt:textarea "message" rows="5" cols="70" is_confirm>
Message
</yatt:textarea>
<div class="submit">
<yatt:if "&yatt:is_confirm;">
<input type="submit" name="~" value="Back"/>
<input type="submit" name="!register" value="Proceed"/>
<:yatt:else/>
<input type="submit" name="~confirm" value="Confirm"/>
</yatt:if>
</div>
</div>
</form>
<!yatt:page confirm>
<yatt:envelope title="Confirm">
&yatt:session_start();
<h2>Is this ok?</h2>
<yatt:req_form is_confirm/>
</yatt:envelope>
<!yatt:action register>
my ($this, $con) = @_;
if (my $sess = $con->get_session) {
# dataref だと, おまけが多すぎる。
my %hash; $hash{$_} = $sess->param($_) for $sess->param;
require YAML::Tiny;
my $dump = YAML::Tiny::Dump(\%hash);
my ($fh, $name, $fnum) = $this->YATT->mh_alloc_newfh;
print $fh $dump;
$con->delete_session;
$this->render_thanks($con, $name, $fnum);
} else {
die "session is (already) empty!\n";
}
<!yatt:widget thanks name fnum>
<yatt:envelope title="Thank you!">
Your request is successfully saved as:<br>
<b>&yatt:name;</b>,<br>
which is only visible to local user.<br>
<a href="./">back</a>
</yatt:envelope>
<!yatt:widget item name is_confirm="bool/0" label=html?>
<div class="item">
<yatt:if "&yatt:name;"><label for="&yatt:name;">&yatt:label;</label></yatt:if>
<yatt:if "&yatt:is_confirm;">
<div class="input">
&yatt:sess(:name);
</div>
<:yatt:else/>
<yatt:body/>
</yatt:if>
</div>
<!yatt:widget text item=[delegate] body=html? size=attr?35 >
<yatt:item label=body>
<input type="text" id="&yatt:name;" name="&yatt:name;" &yatt:size; value="&yatt:sess(:name);">
</yatt:item>
<!yatt:widget textarea item=[delegate]
size=attr?10 rows=attr?5 cols=attr?7
body=html?>
<yatt:item label=body>
<textarea name="&yatt:name;" id="&yatt:name;" &yatt:rows; &yatt:cols;>&yatt:sess(:name);</textarea>
</yatt:item>
<!yatt:widget debug_params>
<table>
<yatt:foreach my=name list="&yatt:CON:param();">
<tr>
<th>&yatt:name;</th>
<td>&yatt:CON:param(:name);</td>
</tr>
</yatt:foreach>
</table>
<!yatt:widget sidenote fn="?00readme.html">
<yatt:if "-r $fn">
<div class="sidenote">
<iframe src="&yatt:fn;"></iframe>
</div>
</yatt:if>