To pass information from one controller to another. I assume it is poor programming practice then? I taught myself web programming on web2py, so I have never had formal training and it was the easiest way I could think of to do this. I think I have seen it in other posted examples as well.
On Jan 20, 12:14 pm, Cliff <cjk...@gmail.com> wrote: > > Currently, in my application, I am passing navigational links in the > > header, such as /app/controller/view/1/2/3 > > > Where 1/2/3 are things the controller and view use to set the correct > > page. > > Why are you doing this? > > On Jan 19, 11:53 pm, web-dev-m <mgrave...@gmail.com> wrote: > > > > > > > > > Currently, in my application, I am passing navigational links in the > > header, such as /app/controller/view/1/2/3 > > > Where 1/2/3 are things the controller and view use to set the correct > > page. > > > In my application, I am finding two problems with this. First is > > security. Although I have written validation on my controllers (I > > hope), I just worry that with more users some malicious person will > > find a way to get access they shouldn't. > > > Second and more urgent is my application broke when I tried to write > > my first ajax function, I assume because the navigational variables > > are competing with the ajax variables somehow. I say this because > > when I make the controller empty and just return a dict everything > > works as normal. However, when I have the controller look for > > variables in request.vars and I then try to call an ajax function, it > > breaks hideously. > > > I don't claim to be a great programmer, so it could definitely be a > > convention I am not following. > > > Has anyone had this problem before? How did you solve it? Should I > > pass my request.vars into the session and then have the view call > > them? > > > I read in the book that I can do ajax trapping and I haven't tried > > that yet, but I didn't think it would be necessary since I could make > > it work without it. I will try it, but regardless I would love to get > > some feedback. > > > for clarity, my code causing problems is below: > > > def my_func(): > > if request.args: > > #First, I check to see if there is a record, if there is, I > > get some information. > > check=db(db.mydb.id==request.args(0)).select().first() > > if check !=None: > > records=db(db.mydb.id==request.args(0)).select() > > row = db(db.mydb.id==request.args(0)).select().first() > > counter=len(records) > > #if it isnt, I make it with a function > > else: > > row = db(db.mydb.id==request.args(0)).select().first() > > my_id=row.id > > (filename, stream) = > > db.mydb.myfield.retrieve(row.resourcefield) > > myfunc(id,filename,stream) > > records=db(db.mydb.id==request.args(0)).select() > > counter=len(records) > > pass > > #if there is no specific document request, generate a list of > > available files > > else: > > redirect(URL('mycontroller','this_function')) > > return(counter=counter, records=records, row=row) > > > def myajaxfunc(): > > form=SQLFORM(db.mydb2, _action="myajaxfunc") > > if form.errors: > > session.flash="Error: " + str(form.errors) > > return XML(form) > > > my view: > > > {{for i in range(1,5):}} > > <div id="my_div" onclick="ajax('myajaxfunc',[''], > > 'mytarget_{{=str(i)}}')">Click me to add a note</div> > > <div id="mytarget_{{=str(i)}}"></div> > > {{pass}}