Hi Mike,

My apologies.  Your syntax DID fix the problem.  I was mistaken in assuming
that the attribute had to be constructed inside the option tag.

Tim

-----Original Message-----
From: Tim Meagher [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 11, 2008 3:41 PM
To: 'General Mark Logic Developer Discussion'
Subject: RE: [MarkLogic Dev General] Embedding the selected attribute in
anHTML select list with xquery

Hi Mike,

The attribute has to be within the option tag as follows:

...
<option value="1" {
   if ($flag) then attribute selected { 1 } else ()
}>Select one</option>
...

However, this also fails.  I will try writing a function to create the
option element - that's worth a try!

Thanks,

Tim

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Michael
Blakeley
Sent: Tuesday, November 11, 2008 3:20 PM
To: General Mark Logic Developer Discussion
Subject: Re: [MarkLogic Dev General] Embedding the selected attribute in
anHTML select list with xquery

Tim,

This looks like a good time to use a computed constructor.

...
<option value="1">{
   if ($flag) then attribute selected { 1 } else ()
}Select one</option>
...

You could also write a function to create the option element with or 
without the attribute, but I think the computed constructor is cleaner.

-- Mike

Tim Meagher wrote:
> I am trying to programmatically embed the "selected" attribute in a select
> list using xquery but am running into problems.  Basically I am writing a
> form that calls itself and trying to set the select value to that of the
> previous value.  What is shown in the following code does not show the
logic
> for obtaining the request field, but it does show the problem with trying
to
> set the selected attribute programmatically.
> 
> Here is the code that fails (which you can run in CQ to verify this):
> 
> xquery version "1.0-ml";
> let $selected := if (true()) then "selected=""selected""" else ""
> return
> <html xmlns="http://www.w3.org/1999/xhtml";>
>     <body>
>     <h3>RefXPress Phase 1 Book Titles</h3>
>     <form name="test" action="analysis-and-statistics.xqy" method="post">
>     Book Title Sort Order: 
>     <select name="order">
>         <option value="one" {$selected}>Select one</option>
>         <option value="two">Select two</option>
>     </select>
>     </form>
>     </body>
> </html>
> 
> 
> Apparently it doesn't like adding an attribute unless the attribute is
> hard-coded and the value is optional.  So changing the selected attribute
to
> a hard-coded value as follows will generate the HTML page without error.
> Note that in XHTML, the "selected" attribute must also have a value, but
it
> is merely the presence of the attribute and not the value that causes the
> select list option to be selected when displaying the form.
> 
> 
> xquery version "1.0-ml";
> let $sel:= """selected"""
> return
> <html xmlns="http://www.w3.org/1999/xhtml";>
>     <body>
>     <h3>RefXPress Phase 1 Book Titles</h3>
>     <form name="test" action="analysis-and-statistics.xqy" method="post">
>     Book Title Sort Order: 
>     <select name="order">
>         <option value="one" selected={$sel}>Select one</option>
>         <option value="two">Select two</option>
>     </select>
>     </form>
>     </body>
> </html>
> 
> 
> The only problem with that is that the selected attribute is hard-coded,
> therefore the item will always be selected.  The same problem exists
trying
> to programmatically add the "checked" attribute to a list of radio
buttons.
> 
> I would like to be able to programmatically set the attribute without
having
> to use javascript to iterate through the select list to set the
appropriate
> selected index.  Perhaps there are some other ways to solve this.  Any
help
> would be much appreciated!  If this cannot be done with xquery, does
anyone
> have an example of doing this in javascript within an xquery page?
> 
> Thank you!
> 
> Tim Meagher
> 
> 
> 
> _______________________________________________
> General mailing list
> [email protected]
> http://xqzone.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general

Reply via email to