Hello,
I am trying to make a simple component which has a form that contains
just buttons. It seems to work OK when I use LOAD(... ajax=False) and
have only one component on my page. However, I'd like to have multiple
components on one page. When I tried that, still with ajax=False,
everything looks OK, but the form doesn't do anything (that is, the
action that's supposed to happen when a button is pushed never
happens). Similarly, if I set ajax=True, the same problem occurs (no
action).
I then tried setting ajax_trap = True after which when I click a
button in the component, the component disappears and the text
"invalid request" appears. I found this very difficult to debug, but
finally by putting a print statement in the rewrites.py file I found
that the path that was trying to be accessed looks as follows, from
which it's why it is an invalid request:

/devel/default/(<gluon.html.XML object at 0x14721510>,)

What is the correct way to have multiple components with simple
customized forms on a single page?

The simple component I am using has the following function which uses
the generic.load:

def inits():
    obs = _getObs()
    form = FORM(TABLE(TR(TD(TAG.BUTTON("Reset
Receiver",_type="submit",_name="initRSS", _value="yes")),
        TD(TAG.BUTTON("Reset DSP",_type="submit",_name="initDSP",
_value="yes")),
        TD(TAG.BUTTON("Auto Level",_type="submit",_name="autoLevel",
_value="yes")),
        TD(TAG.BUTTON("Auto Equalize",_type="submit",_name="autoEQ",
_value="yes")))))
    if form.accepts(request.vars,session):
        if request.vars.initRSS == 'yes':
            print "init RSS"
            obs.simpleRSSSetup()
        if request.vars.initDSP == 'yes':
            print "init DSP"
            obs.simpleDSPSetup()
        if request.vars.autoLevel == 'yes':
            print "autoLevel"
            obs.autoLevel()
        if request.vars.autoEQ == 'yes':
            print "autoEQ"
            obs.autoEQ()
    return dict(form=form)

I have a second similar component. I include them both in the larger
page as:
{{=LOAD('default','inits.load')}}
{{=LOAD('default','posControl.load')}}

Thank you for any suggestions on how to make this work.
G

Reply via email to