Good morning and Happy Easter fellow monks. I come to you with a problem that has my mind melted to slush.
Maybe there's a way to do this with my SQL query, or I can do it in HTML::Template, or it may be easiest to do it in Perl and send it to HTML::Template, but here's the deal:
I have data in a MySQL table that basically looks like this:
03-13-2014,Bob Jones,Pending
03-13-2014,George Manuel,Pending
03-13-2014,Frankie Avalon,Approved
03-13-2014,Robert Garcia,Approved
03-14-2014,John Doe,Pending
I grab this data like so:
$sth = $dbh->prepare(
"
SELECT date,name,status
FROM requests
WHERE date >= '$date'
ORDER BY date
"
);
$sth->execute();
my $reqs;
push @{$reqs}, $_ while $_ = $sth->fetchrow_hashref();
I send this information to HTML::Template:
my $template = HTML::Template->new(filename => 'approve.html');
$template->param(REQS => $reqs);
print $template->output();
<form>
<table class=approve>
<tr>
<th class=approve>Approve</th>
<th class=approve>Decline</th>
<th class=approve>Date</th>
<th class=approve>Name</th>
<th class=approve>Status</th>
</tr>
<TMPL_LOOP NAME=REQS>
<tr class=approve>
<td class=approve><input type=radio name=approve v
+alue=Approved></td>
<td class=approve><input type=radio name=decline v
+alue=Declined></td>
<td class=approve>
<span class="hotspot" onmouseover="tooltip.sho
+w('<strong>Approved Vacation Requests</strong><br /><TMPL_VAR DATE>')
+;" onmouseout="tooltip.hide();">
<TMPL_VAR NAME=DATE>
</span>
</td>
<td class=approve><TMPL_VAR NAME=NAME</td>
<td class=approve><TMPL_VAR NAME=STATUS</td>
</tr>
</TMPL_IF>
</TMPL_LOOP>
<tr class=approve>
<th class=approve colspan=6>
<input type=submit value="Approve / Decline">
<input type=hidden value=approve name=state>
</th>
</tr>
</table>
</form>
<script type="text/javascript" language="javascript" src="js/script.js
+"></script>
Now, what I am trying to do is basically say "Show the user the pending requests in the table, AND, if there are any approved requests, show them the approved requests in a javascript tooltip.
The javascript tooltip code is here:
<span class="hotspot" onmouseover="tooltip.sho
+w('<strong>Approved Vacation Requests</strong><br /><TMPL_VAR DATE>')
+;" onmouseout="tooltip.hide();">
The problem I am having is this: I can easily put the pending requests in a table and present this in my HTML template file. However, I am trying to figure out how to create the tooltip that is connected IF the query has approved requests on the same date as the pending responses. I was thinking, but didn't know how to start this (new to HTML::Template), that I could grab the approved responses in a hash whose structure is like so:
{
'03-13-2014' => 'Frankie Avalon,Robert Garcia',
};
and somehow say if the date (as hash key) of the approved response matches the date of pending response, then add tooltip.
I know that this is probably a simple problem to solve but at this point my mind has degraded to the point of total confusion (thus my terrible code).
Sorry if this post is somewhat rambling. Please let me know if any clarification is needed.