If the variables to be accessed from the original view are not needed
to be passed back to python, it is possible to store the variables in
javascript, and then access the variables from different components.

To view the problem differently, you may wish to look at

http://flowplayer.org/tools/demos/tabs/wizard.html
http://flowplayer.org/tools/demos/scrollable/wizard.html



On Dec 29, 4:38 am, mattynoce <mattyn...@gmail.com> wrote:
> great call, luther. thank to you and ron for the help.
>
> here was the solution:
>
> 1) have the main view code call a component i called "stepFunc"
> 2) have stepFunc then render the appropriate mini-view
>
> [views]
> ** first, i defined a view for each step. so there's a folder at
> default/views/step and it has files like step1.html, step2.html, etc.
> **
>
> [main view]
> ** the variable step contains something like 'step1' **
> <div>
>     {{=LOAD(c='default', f='stepFunc.load', args=[step], ajax=False,
> ajax_trap=False)}}
> </div>
>
> [controller]
> ** there needs to be some error handling but this is the basic gist **
> def stepFunc():
>     step = None
>     if request.args:
>         step = request.args[0]
>     response.view = 'step/' + step + '.html'
>     return dict(step=step)
>
> this solves the problem perfectly. the only downside is that the steps
> don't have access to variable from the original view -- everything the
> steps see must be passed by the stepFunc controller. so it functions
> differently from an include in that way -- the only variable it
> understands here is step.
>
> matt
>
> On Dec 28, 11:15 am, Luther Goh Lu Feng <elf...@yahoo.com> wrote:
>
>
>
>
>
>
>
> > Try 
> > usinghttp://www.web2py.com/book/default/chapter/13#Components-and-Plugins
>
> > I think it should be what you are looking for.
>
> > On Dec 29, 3:05 am, ron_m <ron.mco...@gmail.com> wrote:
>
> > > Its ugly but you must have a finite and small number of nextStep targets
>
> > > {{if nextStep == 'step1':}}
> > >   {{include 'step1.html'}}
> > > {{elif nextStep == 'step2':}}
> > >   {{include 'step2.html'}}
> > > ......
> > > will get you going but introduces a maintenance issue if you add a step
> > > later that ou have to remember to come back to here and fix.
>
> > > The problem is the include passes through the template generation and that
> > > pulls that body of code inline during the template substitution phase 
> > > before
> > > any code executes. I don't think it is possible to have a variable inside
> > > the include statement. I would like to be proven wrong. :-)
>
> > > Ron

Reply via email to