I mean passing args/vars in main_page(): def main_page():
main_pg=DIV(<any your content>) m_cont = LOAD(f='*modal_content**.load*', *args=[ <list of your args>], vars={<dict of your vars> }*, ajax=True, ajax_trap=True ) ... But may be you want to pass something from client side, i.e. args are defined by some user action. What exactly do you want to do? On Friday, February 12, 2016 at 10:00:22 PM UTC+3, billmac...@gmail.com wrote: > > In the book it says load in the view. Nothing in the controller. I was > just wondering if we can add a button in the view and call the ajax from > the view with the argument. If we need to call the LOAD from the view, its > > {{=LOAD('default','manage_things',ajax=True)}} > > Then it fails for m_count. > > > On Friday, February 12, 2016 at 12:20:10 AM UTC-5, Val K wrote: >> >> LOAD() works like URL(), so, to pass args/vars to modal_content you >> could write >> m_cont = LOAD(f='*modal_content**.load*', *args=[ ], vars={ }*, >> ajax=True, ajax_trap=True ) # see LOAD in web2py book >> >> in modal_content controller there is nothing new, everything is as usual >> def modal_content(): >> arg_0 = request.args(0) >> a = request.vars.a >> >> >> >> On Friday, February 12, 2016 at 1:16:35 AM UTC+3, billmac...@gmail.com >> wrote: >>> >>> Thank you! Val and the app works great. >>> >>> One question: >>> >>> Instead of controller, I have the button displayed in the view as: >>> >>> {{=BUTTON( 'Apply',_type="button",_class = "btn >>> btn-default",_style="background-color:green;background-image:none",_onclick=""" >>> >>> $('#cont_id').modal('show') """ )}} >>> >>> It works, however, I need to pass an argument to my controller >>> "modal_content". How do I pass a request.args(0) from my view to the >>> controller in above? Just like I would do >>> >>> <button onclick='window.open("{{=URL("*modal_content*",args= >>> something.id)}}", "mywindow");'>Apply</button> >>> >>> >>> Since I don't see the URL or callback to the javascript. Thanks in >>> advance. >>> >>> >>> On Thursday, February 11, 2016 at 4:27:22 PM UTC-5, Val K wrote: >>>> >>>> Hi! >>>> Here is my solution. I have modal_wrapper function. In controller >>>> file, I have two controllers - main_page and modal_content: >>>> >>>> >>>> >>>> def *main_page*(): >>>> >>>> main_pg=DIV(<any your content>) >>>> >>>> m_cont = LOAD(f='*modal_content**.load*', ajax=True, >>>> ajax_trap=True ) >>>> >>>> dialog = modal_wrapper(m_cont, _id='*cont_id*', header='Header', >>>> footer='footer') >>>> >>>> show_modal_btn = BUTTON( 'Show modal', >>>> _type="button", >>>> _class = "btn >>>> btn-default", >>>> _onclick=""" >>>> $('#*cont_id*').modal('show') """) >>>> >>>> #don't forget to add dialog and show_modal_btn to main page >>>> main_pg.append(show_modal_btn) # or main_pg.append( >>>> DIV(show_modal_btn) >>>> ) or something else >>>> main_pg.append(dialog) >>>> >>>> return dict(main_pg = main_pg) >>>> >>>> >>>> >>>> >>>> # keep in mind just one thing: >>>> # this controller is exposed by *.load, so it must return a dict of >>>> ONE element >>>> # to return more than one element - wrap all in one DIV: >>>> # ret = DIV() >>>> # ret.append( ... ) >>>> # ret.append( form ) >>>> # ret.append( ... ) >>>> # return dict(ret = ret) >>>> >>>> def *modal_content*(): >>>> >>>> form = SQLFORM(...) # or even form = SQLFORM.grid(...) >>>> >>>> return dict(form=form) >>>> >>>> >>>> >>>> # means bootstrap 3 >>>> def* modal_wrapper*(content, _id, header='', footer=''): >>>> >>>> main_wrap = DIV('', _class="modal fade", _role="dialog", _id=_id, >>>> _tabindex="-1" ) >>>> title_id = _id + '_title' >>>> main_wrap['_aria-labelledby']=title_id >>>> >>>> dialog_div=DIV('', _class="modal-dialog" , _role="document") >>>> content_div=DIV('', _class="modal-content") >>>> header_div = DIV( _class="modal-header") >>>> >>>> close_cross = BUTTON( >>>> SPAN(XML('×'), **{'_aria-hidden':"true"}), >>>> _type="button", _class="close", >>>> data={'dismiss':"modal"}, >>>> **{'_aria-label':"Close"} >>>> ) >>>> title_h4 = H4( header, _class="modal-title", _id = title_id) >>>> body_div = DIV( content, _class="modal-body") >>>> >>>> >>>> close_btn = BUTTON('Close', _type="button", _class="btn >>>> btn-default", data={'dismiss':"modal"}) >>>> footer_div = DIV( footer, close_btn, _class="modal-footer") >>>> >>>> # gluon all >>>> main_wrap[0] = dialog_div >>>> dialog_div[0] = content_div >>>> >>>> header_div.append(close_cross) >>>> header_div.append(title_h4) >>>> >>>> [content_div.append(c) for c in (header_div, body_div, footer_div)] >>>> return main_wrap >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> On Thursday, February 11, 2016 at 8:07:32 PM UTC+3, >>>> billmac...@gmail.com wrote: >>>>> >>>>> Thank you for your answer Massimo. When I implemented this. >>>>> >>>>> <button onclick='window.open("{{=URL("my_view",args=something.id)}}", >>>>> "mywindow");'>Apply To This Post</button> >>>>> >>>>> It shows me a button and then I get redirected to another page. I just >>>>> wanted a pop up window open up with a form to submit that user can move >>>>> around without being redirected to another page. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Wednesday, February 10, 2016 at 10:51:11 PM UTC-5, Massimo Di >>>>> Pierro wrote: >>>>>> >>>>>> I see you want a different window, not a modal. >>>>>> >>>>>> then you have to put the form logic in its own controller action and >>>>>> call it from js >>>>>> >>>>>> <button onclick="window.open("{{=URL('form_action)}}");">click >>>>>> me</button> >>>>>> >>>>>> On Wednesday, 10 February 2016 18:00:44 UTC-6, billmac...@gmail.com >>>>>> wrote: >>>>>>> >>>>>>> Thank you for the answer Massimo. I did this like you said to put >>>>>>> the form in the body in index/popup.html however, it didn't pop up like >>>>>>> the >>>>>>> example in the link above. Instead I got it in the same browser. I am >>>>>>> guessing my implementation is wrong. >>>>>>> >>>>>>> <div class="modal fade"> >>>>>>> <div class="modal-dialog"> >>>>>>> <div class="modal-content"> >>>>>>> <div class="modal-header"> >>>>>>> <button type="button" class="close" data-dismiss="modal" >>>>>>> aria-hidden="true">×</button> >>>>>>> <h4 class="modal-title">Modal title</h4> >>>>>>> </div> >>>>>>> <div class="modal-body"> >>>>>>> >>>>>>> {{=form}} >>>>>>> >>>>>>> </div> >>>>>>> <div class="modal-footer"> >>>>>>> <button type="button" class="btn btn-default" >>>>>>> data-dismiss="modal">Close</button> >>>>>>> <button type="button" class="btn btn-primary">Save >>>>>>> changes</button> >>>>>>> </div> >>>>>>> </div><!-- /.modal-content --> >>>>>>> </div><!-- /.modal-dialog --> >>>>>>> </div><!-- /.modal --> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wednesday, February 10, 2016 at 5:06:28 PM UTC-5, Massimo Di >>>>>>> Pierro wrote: >>>>>>>> >>>>>>>> Bootstrap3 has built-int modals: >>>>>>>> https://nakupanda.github.io/bootstrap3-dialog/ >>>>>>>> You can but {{=form}} in the body of the modal. >>>>>>>> >>>>>>>> On Tuesday, 9 February 2016 14:26:05 UTC-6, billmac...@gmail.com >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Hello, A new user migrating from Django to web2py and absolutely >>>>>>>>> loving it. A quick question. How do I use a light box or a pop up >>>>>>>>> window to >>>>>>>>> display a form in my view? >>>>>>>>> >>>>>>>>> >>>>>>>>> for example in default/index.html >>>>>>>>> >>>>>>>>> {{=form}} >>>>>>>>> >>>>>>>>> Want to show that form in a pop up window. >>>>>>>>> >>>>>>>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.