Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

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.


In reply to Re: Fetched data in HTML.. by aaron_baugher
in thread Fetched data in HTML.. by anu2011

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Domain Nodelet?
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this?Last hourOther CB clients
    Other Users?
    Others exploiting the Monastery: (3)
    As of 2024-10-07 19:28 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      The PerlMonks site front end has:





      Results (44 votes). Check out past polls.

      Notices?
      erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.