[html-template-devel] tmpl_equal needed ?
Edi Weitz
edi at agharta.de
Tue Dec 26 09:38:10 UTC 2006
On Tue, 26 Dec 2006 12:52:11 +0530, Vamsee Kanakala <vamlists at gmail.com> wrote:
> I have something like this, and the <option> tag needs to be
> selected when id matches the value of the parameter called
> location-id.
>
> <p><label for="location-id">Location: </label>
> <select id="location-id" name="location-id">
> <option value="">Choose a location</option>
> <!-- tmpl_loop rows -->
> <!-- tmpl_loop cols -->
> <option value="<!-- tmpl_var id -->">
> <!-- tmpl_var name --></option>
> <!-- /tmpl_loop -->
> <!-- /tmpl_loop -->
> </select></p>
>
> So I followed Igor's advice (thank you!) and changed the <option>
> tag above to this:
>
> <option <!-- tmpl_var selected --> value="<!-- tmpl_var id -->">
> <!-- tmpl_var name --></option>
>
> Supported by this code:
>
> (rows (loop for locationl in locations
> collect (list :cols
> (loop for location in locationl
> if (and (required-exist-p location-id)
> (equal (parse-integer location-id
> :junk-allowed t)
> (id location)))
> collect (list :id (id location)
> :name (name location)
> :selected "selected")
> else collect (list :id (id location)
> :name (name location)))))
>
> It's working now. Do let me know if there are better ways to achieve
> this.
That's fine. I'd probably do it a little bit different (see below,
untested), but that's just a matter of taste:
<option <!-- tmpl_if selected -->selected <!-- /tmpl_if -->value="<!-- tmpl_var id -->"><!-- tmpl_var name --></option>
(loop for location in locationl
collect (list :id (id location)
:name (name location)
:selected (and (required-exist-p location-id)
(equal (parse-integer location-id :junk-allowed t)
(id location)))))
More information about the Html-template-devel
mailing list