Aaahhh got it Thank you very much!! On Tue, May 21, 2019, 7:14 PM Junior Phanter <junior.co...@gmail.com> wrote:
> # controller return javascript(Jquery) to eval > def echo: > import json > return "$('#target').html(%s)" %(json.dumps(DIV("Hello", > STRONG("world"), "<tag_of_devil>Escape this?</tag_of_devil>").xml())) > > #view > <div id="target"></div> > <button id="your_button">get from echo</button> > <script> > $("#your_button").on("click", function(){ > url_ajax = "{{=URL("your_controler", "echo")}}" > ajax(url_ajax, [], ":eval")) > }) > </script> > > > > > Em ter, 21 de mai de 2019 às 19:43, Eliezer (Vlad) Tseytkin < > westgate6...@gmail.com> escreveu: > >> I am very familiar with controllers/views/helpers the way you just >> specified, but it doesn't help me because here is my context: >> I am using ajax function from JavaScript, as a response to a certain >> event on the page. This ajax is called with :eval option which allows me to >> construct actual JavaScript string to be executed (the one that in my >> example represented by result+=...); the reason I can't use a regular JS >> ajax call which replaces html element is because I specifically need to >> update multiple targets, so :eval is my only option). I can't use regular >> {{...}} embeds either, because I can't reload the page - need to update >> multiple html elements on the fly, in ajax mode. >> That's why my only option seems to be constructing JavaScript which >> executes the necessary updates on the page as a sequel to JavaScript >> ajax(:eval) call. This is exactly how I ended up constructing JavaScript in >> my controller function and the need to mix in some web2py objects in it. >> >> On Tue, May 21, 2019, 6:24 PM villas <villa...@gmail.com> wrote: >> >>> Not sure what you are trying to do, work in the controller or view, or >>> why you are trying to append with JS. >>> >>> Maybe you could learn to use the web2py helpers... >>> e.g. controller >>> def example(): >>> cart = db(db.cart).select().as_list() >>> mydiv = DIV(cart, _id='Debug_Discount' ) >>> return dict(mydiv=mydiv) >>> >>> view example.html >>> {{=mydiv}} >>> >>> OR >>> e.g. controller >>> def example(): >>> cart = db(db.cart).select() >>> mydiv = DIV(_id='Debug_Discount' ) >>> return dict(mydiv=mydiv, rows=rows) >>> >>> view example.html >>> {{=mydiv}} >>> <hr /> >>> <script> >>> {{ =ASSIGNJS(cart) }} >>> $('#Debug_Discount').html(cart); >>> </script> >>> >>> Not sure whether any of the above will work or help, but just >>> experiment until you learn how best to mix it all together. >>> >>> >>> >>> On Tuesday, 21 May 2019 17:40:59 UTC+1, Vlad wrote: >>>> >>>> ALMOST :) >>>> >>>> result += ASSIGNJS(cart=cart) >>>> result += "$('#Debug_Discount').append('<div>'+cart+'</div>');" >>>> >>>> this comes out as [object Object] >>>> >>>> But generated Javascript (as far as the object's content is concerned) >>>> seems right - I think I am missing the final touch, some javascript trick >>>> that would print it fully. >>>> >>>> Here is actual Javascript generated: >>>> >>>> $('#Debug_Discount').append('<hr/>'); >>>> var cart = [{"id": 125, "cart": 40, "product": 161, "quantity": 1, >>>> "price": 3000, "imported": null, "is_active": true, "created_on": >>>> "2019-05-17 15:47:52", "created_by": 1, "modified_on": "2019-05-17 >>>> 15:47:52", "modified_by": 1}]; >>>> $('#Debug_Discount').append('<div>'+cart+'</div>');. >>>> >>>> Good ideas on final touch? >>>> >>>> On Tuesday, May 21, 2019 at 11:34:54 AM UTC-4, villas wrote: >>>>> >>>>> Maybe this: ASSIGNJS >>>>> >>>>> http://www.web2py.com/books/default/chapter/29/05/the-views#ASSIGNJS >>>>> >>>>> >>>>> >>>>> On Tuesday, 21 May 2019 15:43:25 UTC+1, Vlad wrote: >>>>>> >>>>>> I am calling ajax function with :eval and setting up some javascript >>>>>> [from the controller] to be executed [as per :eval option js is executed >>>>>> in >>>>>> the end], something like this: >>>>>> >>>>>> result = "$('#DebugID').append('<p>" >>>>>> result += "CONTENT" >>>>>> result += "</p>');" >>>>>> return result >>>>>> >>>>>> Now, this works, and it displays <p>CONTENT</p> at the right place. >>>>>> >>>>>> But here is a catch: instead of "CONTENT" I want it to display an >>>>>> object, for example Rows object which is returned by db.select. >>>>>> In other words, whatever comes out when {{=rows}} is specified in >>>>>> html view, I want to send via javascript. >>>>>> >>>>>> Obviously, the following 2 options are grossly incorrect and don't >>>>>> work, for obvious reasons: >>>>>> result += XML(rows) >>>>>> result += "={{rows}}" >>>>>> >>>>>> So, how do I make the stuff display properly as passed over vial >>>>>> javascript? >>>>>> >>>>>> >>>>> -- >>> 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 a topic in the >>> Google Groups "web2py-users" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/web2py/oGAP28q6c_Q/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> web2py+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/web2py/c5abcf26-bfd9-4461-baea-2f62ea695d61%40googlegroups.com >>> <https://groups.google.com/d/msgid/web2py/c5abcf26-bfd9-4461-baea-2f62ea695d61%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> 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. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/web2py/CABZ%2BKCD3OZtPgka-u-koFFN3QqxyYK_n94G34rhmuNTdKxebuQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/web2py/CABZ%2BKCD3OZtPgka-u-koFFN3QqxyYK_n94G34rhmuNTdKxebuQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > 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 a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/web2py/oGAP28q6c_Q/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > web2py+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/web2py/CAFoqysiCxzOFxuwe1DWU%2BUWbAGu9dktFmB5g-c%3D-piA4qUCkvA%40mail.gmail.com > <https://groups.google.com/d/msgid/web2py/CAFoqysiCxzOFxuwe1DWU%2BUWbAGu9dktFmB5g-c%3D-piA4qUCkvA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/CABZ%2BKCC%3D5NspKjokecGj4jkwZ6811dOtncAox9L69wycvzKHTw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.