Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Fetched data in HTML..

by aaron_baugher (Deacon)
on Sep 26, 2011 at 20:04 UTC ( #927937=note: print w/ replies, xml ) Need Help??


in reply to Fetched data in HTML..

The simplest (and ugliest) way is to simply print out your form with the data inserted. Something like (untested):

my $h = $sth->fetchrow_hashref; # error checking left out print <<END; <form> Username: <input name='username' value='$h->{username}' /><br /> Notes: <textarea name='notes'>$h->{notes}</textarea> <input type='submit' /> </form> END

You can clean that up somewhat by using the CGI.pm module's HTML functions, so instead of printing a chunk of HTML, you call those functions for the individual tags:

print( start_form, 'Username: ', textfield('username', $h->{username}), br, 'Notes: ', textarea('notes', $h->{notes}), submit, end_form );

The next abstraction up would be a templating system like Template::Toolkit, where you keep your HTML in a separate template file, with placeholders where you want your data inserted, then put your data in a particular variable and pass it to the template.

The next step up from that is something like Catalyst or Dancer, which will use a templating system on the output side, and also have plugins for easy access to your data on the database side.

Somewhere in the middle of these I'd put inline-coding systems like HTML::Mason, which lets you put your code in your HTML (somewhat like PHP) instead of putting your HTML in your code. This still has the problem of the two getting jumbled, though.

% my $h = $sth->fetchrow_hashref; <form> Username: <input name='username' value='<% $h->{username} %>' /><br /> Notes: <textarea name='notes'><% $h->{notes} %></textarea> <input type='submit' /> </form>

I'm probably forgetting an option or two, but which of these options you should use depends on the complexity of your project, the ratio of HTML to code (if there's very little of one or the other, having them mixed may not be a big problem), what other subsystems might be helpful to you (like the plugins available for Dancer), and personal preference.


Comment on Re: Fetched data in HTML..
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://927937]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (10)
As of 2014-09-23 11:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (219 votes), past polls