> -----Original Message-----
> From: Andrew Close [mailto:[EMAIL PROTECTED]
> Sent: Thursday, July 15, 2004 11:57 AM
> To: Struts Users Mailing List
> Subject: Re: <html:select><html:optionsCollection>
> 
> 
> sl_getGroups is being called.  i printed out alerts when i was writing
> it.  and i have Sys.outs in the action.  besides, my JSP wouldn't show
> up if it wasn't :)
> 
> the javascript is fairly simple:  (i know there is a more Strutsy way
> to do this, i'm getting there...)
> 
> function sl_getGroups(frm) {
> if 
> (frm.selectedShoppingList.options[frm.selectedShoppingList.sel
> ectedIndex].value
> != "-1") {
>   
> frm.selectedShoppingList.options[frm.selectedShoppingList.sele
> ctedIndex].value
> = "-1";
>   frm.action += "?step=getGroups";
>   frm.submit();
>  }
> }
> 
> the javascript just checks to see that the selectedShoppingList is not
> "-1", the initial value.  it then appends my step parameter to the
> action.  this is working.  what is funny is that the javascript
> recognizes that the selectedShoppingList is not "-1", but the form
> doesn't pick that up...
> 
> any suggestions?

Just to make sure I understand what's happening.....
You display a page, user selects from first list, the page submits, the action does 
it's thing,  and populates the second list, then the user selects from that list, 
submits and at that point you only have the first selection and not the second.  In 
addition the javascript seems to know what's going on, but the form bean doesn't.

I would try a dummy action that would fill both lists, then select from both lists and 
get that working, then I would try doing it your way.  I have a sneaking suspicion 
that there is something funky going on with the javascript, but don't know what it 
would be.  Eliminating it and getting the basic operations working first would be a 
good start.

> 
> andy
> 
> 
> On Thu, 15 Jul 2004 14:36:14 -0400, Bill Siggelkow
> <[EMAIL PROTECTED]> wrote:
> > Hmmm ... looks pretty darn hairy. You didn't show the 
> JavaScript thats
> > called by the onchange --  I would verify first that "getGroups" is
> > being called.
> > 
> > 
> > 
> > Andrew Close wrote:
> > 
> > > alrighty,  i've got this half figured out.  i can populate my
> > > dropdowns, but my form doesn't seem to be scrapping the 
> values back
> > > off the page.
> > > i have an action that gets a collection of beans and puts them in
> > > session for the JSP to use.  the JSP renders and displays those
> > > objects correctly in the dropdowns.  when the first dropdown is
> > > changed an onchange event fires off the previous action 
> to populate
> > > the second dropdown.  however, the selected value in the first
> > > dropdown doesn't show up in my Action or the Form.
> > >
> > > here's part of the JSP:
> > >
> > > <td align="left">
> > >  <html:select name="shoppingListForm" 
> property="selectedShoppingList"
> > > onchange="sl_getGroups(this.form);" >
> > >   <html:option value="-1" >- Please Select A List -</html:option>
> > >   <html:optionsCollection name="lists" />
> > >  </html:select>
> > >  <br>
> > >  <html:select name="shoppingListForm"
> > > property="selectedShoppingListGroup"
> > > onchange="sl_getItems(this.form);" >
> > >   <logic:match name="selectedShoppingList" value="-1">
> > >    <html:option value="-1" >- Please Select A List -</html:option>
> > >   </logic:match>
> > >   <logic:notMatch name="selectedShoppingList" value="-1">
> > >    <html:option value="-1" >- Please Select A Group 
> -</html:option>
> > >    <html:option value="0" >- All Groups -</html:option>
> > >    <html:optionsCollection name="groups" />
> > >   </logic:notMatch>
> > >  </html:select>
> > > </td>
> > >
> > > and i have an ActionForm created named shoppingListForm 
> containing two
> > > Strings: selectedShoppingList and selectedShoppingListGroup with
> > > initial values set at "-1".  ShoppingListForm contains 
> basic getters
> > > and setters for these attributes.
> > >
> > > so i'm guessing my problem lies within my Action.  i'm extending
> > > DispatchAction and the getGroups method forwards to the 
> above JSP on
> > > "success".
> > >
> > > public ActionForward getGroups (
> > >
> > > <snip>
> > >
> > > try {
> > >     HttpSession session = request.getSession(false);
> > >     ShoppingListForm slForm = (ShoppingListForm)form;
> > >
> > >     if (slForm == null) {
> > >         session.setAttribute("selectedShoppingList", "-1");
> > >         session.setAttribute("selectedShoppingListGroup", "-1");
> > >     } else {
> > >         session.setAttribute("selectedShoppingList",
> > > slForm.getSelectedShoppingList());
> > >         session.setAttribute("selectedShoppingListGroup",
> > > slForm.getSelectedShoppingListGroup());
> > >
> > >         System.out.println("\n\nShopping List Form...");
> > >         System.out.println("Shopping List: " +
> > > slForm.getSelectedShoppingList());
> > >         System.out.println("Shopping List Group: " +
> > > slForm.getSelectedShoppingListGroup() + "\n\n\n");
> > >     }
> > >
> > > ... go on to populate collection for lists, etc...
> > >
> > > the first time through the form will be null because this 
> action is
> > > called from another page.  the action populates 'lists' 
> and forwards
> > > to the above JSP.  onchange in the JSP calls this same action and
> > > should pass it my ShoppingListForm, in which should be 
> found the value
> > > to selectedShoppingList.  however this value remains "-1".
> > > on success the same JSP is displayed...
> > >
> > > here is the action-mapping for this particular action:
> > >
> > > <action path="/refresh"
> > >  parameter="step"
> > >  type="sl.controllers.SLMainAction"
> > >  name="shoppingListForm"
> > >  validate="true">
> > >   <forward name="success" path="/jsp/SLMain.jsp" />
> > >   <forward name="failure" path="/jsp/SLError.jsp" />
> > > </action>
> > >
> > > thanks for any help
> > > andy
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to