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.