Hi Derek,
now while trying out your code I discovered something that really has
nothing
to do with CForms:
<jx:forEach var="thisTheme" items="atheme">
<li>A Selection 1: ${atheme}</li>
</jx:forEach>
the syntax is simply wrong. it should say
<jx:forEach var="thisTheme" items="${atheme}">
<li>A Selection 1: ${thisTheme}</li>
</jx:forEach>
now this should help ;)
Derek Hohls wrote:
Johannes
Still no luck - I have tried adding in some more variables
to test; and it looks like the values are being stored in
the array OK...
var values = Array();
for( i = 0; i < model.theme.length ; i ++ )
values[i] = model.theme[i];
var test0 = values[0];
var test1 = values[1];
cocoon.sendPage("ijx-page", { "atheme":values, "theme":values,
"test0":test0; "test1":test1 });
The output for test0 or test1 matches the mulivalue widget
selection BUT the "values" output in the JX for-each loop is
still the strange references as before...
What else to try ??
Derek
[EMAIL PROTECTED] 2004/06/21 11:49:16 AM >>>
Derek,
I actually don't use the values this way, I insert them directly into
the database
after the form was submitted.
Let's examine your code though, since you should be able to use the
values in jxt
as well.
var model = form.getModel();
var atheme = model.theme; /* theme is multiselect box */
cocoon.sendPage("jxpage", { "atheme":atheme, "theme":model.theme });
There is something subtile here. "model.theme" is an object of type
ScriptableWidget,
so JXT will be confused when you pass it as a collection. (and print
out the "value"
[EMAIL PROTECTED])
I suggest retrieving the values to a native JavaScript array and
passing that one
to JXT.
var model = form.getModel();
var values = Array();
for( i = 0; i < model.theme.length ; i ++ )
values[i] = model.theme[i];
cocoon.sendPage("jxpage", { "atheme":values, "theme":values });
Does this work? It's just the solution to my problem applied in the
opposite direction :)
HTH, Johannes
Derek Hohls wrote:
Johannes
I have tried what you suggested - the problem
is displaying the results in the JXTemplate - could
you please post your code snippet, as what I have
tried does not work....
ie.
in flowscript:
var model = form.getModel();
var atheme = model.theme; /* theme is multiselect box */
cocoon.sendPage("jxpage", { "atheme":atheme, "theme":model.theme
});
in jxtemplate:
<jx:forEach var="thisTheme" items="theme">
<li>Selection: ${theme}</li>
</jx:forEach>
<jx:forEach var="thisTheme" items="atheme">
<li>A Selection 1: ${atheme}</li>
</jx:forEach>
<jx:forEach var="thisTheme" items="atheme">
<li>A Selection 2: ${thisTheme}</li>
</jx:forEach>
in output html:
Selection:
[EMAIL PROTECTED]
A Selection 1:
[EMAIL PROTECTED]
A Selection 2:
[EMAIL PROTECTED]
I am obviously missing some crucial conversion ?!
Thanks
Derek
[EMAIL PROTECTED] 2004/06/21 08:35:47 AM >>>
Hi Derek + all,
I got this solved in the meantime. Actually I had to create a
temporary
array and then set the multivalue model to this array:
var model = form.getModel();
var rubriken = Array();
for( i = 0 ; i < size ; i ++ )
rubriken[i] = new java.lang.Integer(val[i]);
model.rubriken = rubriken;
Notice the difference to the code quoted below: Modifying the model
directly did NOT work, as it is actually an object of type widget and
something
gets messed up. This is because internally, a setter method is called
when
assigning something to model.rubriken. Took me some hours to figure
this
out, as I'm a CForms beginner :)
I think I will put a stripped-down version of my article management
on
the
wiki when I'm done - it's based on CForms + Woody + Hibernate and
uses
a few more widgets than the present sample.
Derek, you can read values from the model like this:
var model = form.getModel();
var vals = model.rubriken // retrieve array from multivalue widgets
Now, vals is an array which contains all the values of the options
selected by
the user.
Derek Hohls wrote:
And maybe the same person knows how to
*get* the values from the CForm multivalue widget
and display them using a JXTemplate loop??
A sample showing both of these would be *very*
helpful and (IMO) needs to be a part of the
Cocoon forms samples.
Thanks
Derek
[EMAIL PROTECTED] 2004/06/20 09:25:06 PM >>>
Hi all,
I'm going nuts trying to set values in a CForm multivalue widget.
I obtained the Form model with:
var model = form.getModel();
Then I tried to set the values like this:
model.rubriken = Array(size);
for( i = 0 ; i < size; i++)
model.rubriken[i] = new java.lang.Integer(val[i]);
When size=0, everything is fine. Otherwise, I get
Cannot set value of field "rubriken" with an object of type
org.mozilla.javascript.UniqueTag
When I omit the array declaration, I get null pointer exceptions.
Has anybody done this and can explain me how ?
TIA, Johannes
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]