Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^4: HTML - sharing design and logic

by BUU (Prior)
on Jul 01, 2004 at 17:57 UTC ( #371191=note: print w/ replies, xml ) Need Help??


in reply to Re^3: HTML - sharing design and logic
in thread HTML - separating design and logic

Perhaps our standards of beauty differ, but:

<select> <tmpl_loop name='options'> <option value='<tmpl_var val>' <tmpl_if selected > selected </ +tmpl_if> </option> </tmpl_loop> </select>
Is that really so ugly?


Comment on Re^4: HTML - sharing design and logic
Download Code
Replies are listed 'Best First'.
Re^5: HTML - sharing design and logic
by hardburn (Abbot) on Jul 01, 2004 at 18:59 UTC

    I was thinking of the situation where the HTML designer wanted to include the list statically:

    <select> <option value="1" <TMPL_IF option1>selected</TMPL_IF>>1</option> <option value="2" <TMPL_IF option2>selected</TMPL_IF>>2</option> <option value="3" <TMPL_IF option3>selected</TMPL_IF>>3</option> . . . </select>

    Belch!

    ----
    send money to your kernel via the boot loader.. This and more wisdom available from Markov Hardburn.

      In this case, i don't think you should allow the designers to do that. Why? Have to answer that one with another question: Why do they need to do that? I'll wager they have no valid, good reason for it.

      Many moons ago, samtregar gave me a good piece of advice. There he pointed me to H::T FAQ #11, and since Sam said it much better than i can, i will reprint his text here:

      Q: What's the best way to create a <select> form element using HTML::Template?

      A: There is much disagreement on this issue. My personal preference is to use CGI.pm's excellent popup_menu() and scrolling_list() functions to fill in a single <tmpl_var select_foo> variable.

      To some people this smacks of mixing HTML and code in a way that they hoped HTML::Template would help them avoid. To them I'd say that HTML is a violation of the principle of separating design from programming. There's no clear separation between the programmatic elements of the <form> tags and the layout of the <form> tags. You'll have to draw the line somewhere - clearly the designer can't be entirely in charge of form creation.

      It's a balancing act and you have to weigh the pros and cons on each side. It is certainly possible to produce a <select> element entirely inside the template. What you end up with is a rat's nest of loops and conditionals. Alternately you can give up a certain amount of flexibility in return for vastly simplifying your templates. I generally choose the latter.

      Another option is to investigate HTML::FillInForm which some have reported success using to solve this problem.

      For me, this means that you (the HTML designer) give me the list you want and i will make the select for you.

      jeffa

      L-LL-L--L-LL-L--L-LL-L--
      -R--R-RR-R--R-RR-R--R-RR
      B--B--B--B--B--B--B--B--
      H---H---H---H---H---H---
      (the triplet paradiddle with high-hat)
      

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2015-07-30 01:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (269 votes), past polls