I got the error resolved:
{{=LOAD('default','view_searches.load',ajax=True)}}
instead of :
{{=LOAD('replies','view_searches.load',ajax=True)}}On Tue, Nov 14, 2017 at 12:06 AM, Maurice Waka <[email protected]> wrote: > in my controller: > def view_searches: > if db(db.post).isempty(): > db.post.insert(message="Hi, it's" +' ' +auth.user.first_name+' '+ > 'loging in...') > form = SQLFORM(Post, formstyle='table3cols',) > if form.process().accepted: > pass > long code... > replies = db(db.answers.author == auth.user.id).select(db. > answers.ALL)[-5:5] > return dict(form = SQLFORM(Post, formstyle='table3cols',).process(), > replies = db(db.answers.author == auth.user.id).select(db. > answers.ALL)[-5:5]) > > > html page: > > {{extend "layout.html"}} > > {{=LOAD('replies','view_searches.load',ajax=True)}} > > > error message on loading view_searches.html: > > invalid controller (replies/view_searches) > > This is how far I've come > > > On Mon, Nov 13, 2017 at 9:18 AM, Maurice Waka <[email protected]> > wrote: > >> Sorry I cant make any head, nor tail of this.I need you help >> >> On Mon, Nov 13, 2017 at 8:13 AM, Maurice Waka <[email protected]> >> wrote: >> >>> I don't have it. >>> Let me work it out >>> >>> On Sun, Nov 12, 2017 at 10:33 PM, Dave S <[email protected]> wrote: >>> >>>> >>>> >>>> On Saturday, November 11, 2017 at 7:13:31 PM UTC-8, Maurice Waka wrote: >>>>> >>>>> Why I said that: >>>>> >>>>> 1. Loading takes too long to load >>>>> 2. I get an error: invalid controller..see below >>>>> 3. >>>>> >>>>> >>>>> >>>>> >>>> Loading takes too long? the LOAD helper should be faster than a page >>>> refresh, give or take a cache hit. >>>> >>>> Do you have the file my-chatbot-app/controllers/messages.py, and does >>>> it have the function answers() ? >>>> >>>> /dps >>>> >>>> >>>> >>>>> On Sat, Nov 11, 2017 at 1:58 PM, Maurice Waka <[email protected]> >>>>> wrote: >>>>> >>>>>> Thanks for the reply and details. It will take me several weeks juts >>>>>> to get something to work out. As I had said, am not an expert in this as >>>>>> I >>>>>> do part time programming; I have to study it first then practice till I >>>>>> get >>>>>> something to work out. >>>>>> Is it OK if you give me a working example?...😜 >>>>>> Kind regards >>>>>> >>>>>> On Sat, Nov 11, 2017 at 9:32 AM, Dave S <[email protected]> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Friday, November 10, 2017 at 1:30:40 AM UTC-8, Maurice Waka wrote: >>>>>>>> >>>>>>>> Hi everyone. >>>>>>>> For several months, though not a python expert, nor a web2py guru >>>>>>>> either, I have been working on a simple bot. I borrowed from this site: >>>>>>>> https://codepen.io/pavel_komiagin/pen/gaGJJK >>>>>>>> [...] >>>>>>>> I also don't want page refreshed on posting the question, that it >>>>>>>> works like other bots where the messages appear from the bottom as they >>>>>>>> come in. Ifigured out that maybe as the page refreshes, that's when the >>>>>>>> cursor moves first up then to the bottom of the page, then the message >>>>>>>> appears. >>>>>>>> I dont mind a new code or referral. >>>>>>>> >>>>>>> >>>>>>> That "append to the current page" stuff is ajax. Web2py has a very >>>>>>> handy wrapper for ajax, the LOAD() helper. >>>>>>> <URL:http://web2py.com/books/default/chapter/29/12/component >>>>>>> s-and-plugins#LOAD> >>>>>>> The target argument specifies where on the page to put the results >>>>>>> ... you need a DIV that matches. >>>>>>> >>>>>>> My example, which goes in the view file: >>>>>>> >>>>>>> {{=LOAD(c='myhosts', f='myhosts2.load', target='my_hosts', >>>>>>> content="something's >>>>>>> happening", ajax=True)}} >>>>>>> >>>>>>> >>>>>>> To continually append more messages, instead of replacing old with >>>>>>> new, you would need to have multiple DIVs, and point to a different DIV >>>>>>> for >>>>>>> each message. >>>>>>> >>>>>>> The above code will run automatically on initial page load, which >>>>>>> you may or may not want, depending on whether you want messages from a >>>>>>> previous visit to appear. >>>>>>> >>>>>>> I have done some stuff where I want a user to click a button to get >>>>>>> more information, and so I fabricate an html string in the controller, >>>>>>> put >>>>>>> the string into the dict I return, and the view displays the string in >>>>>>> the >>>>>>> appropriate part of the page. >>>>>>> >>>>>>> The string includes something like this: >>>>>>> >>>>>>> dis_str = CAT(dis_str, TT(" "), >>>>>>> A("mystuff list", _href=URL("mystuff.html", vars= >>>>>>> dict(ipaddr=ipaddr, hnam >>>>>>> e=hname, tdisk=index)), >>>>>>> _style="visibility:visible", _id="stuffh"), >>>>>>> TT("\n "), >>>>>>> TAG.BUTTON('mystuff list', _type="button", _name= >>>>>>> "val2controller", _value=val2controller, >>>>>>> _onclick='$("#mystuff_div").html("updating >>>>>>> ..");ajax("mystuff.load", ["val2controller"], "mystuff_div")', >>>>>>> _style="display:none", _id="mystuffa")) >>>>>>> >>>>>>> I think you can manipulate the DIV name either server side or client >>>>>>> side, but I haven't tested any code for that purpose. >>>>>>> >>>>>>> Server side: keep the name in the session object, update it on each >>>>>>> load, and in the view/controller/response.load file use the DIV helper >>>>>>> after you display your messages. This will end up nesting the DIVs, >>>>>>> but I >>>>>>> don't think that's a problem. Caveat coder. >>>>>>> >>>>>>> Client side: use javascript to tap into the onclick path, and >>>>>>> insert a new DIV into the DOM, then use that DIV's name in the ajax >>>>>>> call. >>>>>>> You may have to go direct to ajax in this scheme, rather than using the >>>>>>> LOAD helper. This will require a little more study, but look at the >>>>>>> other >>>>>>> material in the book's component chapter, and it may help you out. >>>>>>> >>>>>>> Note that using ajax requires that your users allow javascript from >>>>>>> your site, and there are plenty of people reluctant to do that, but if >>>>>>> they >>>>>>> are going to trust your site they might as well trust your site. Using >>>>>>> something like noscript gives them some confidence that they protected >>>>>>> against cross-site scripting attacks, but they can whitelist your site >>>>>>> to >>>>>>> view your pages. (noscript is for firefox; I don't know the equivalent >>>>>>> in >>>>>>> other browsers, but chrome has some of the features built in but not as >>>>>>> easily tuned.) >>>>>>> >>>>>>> Good luck! I hope this helps, and that I haven't fed you too much >>>>>>> bogus information. >>>>>>> >>>>>>> /dps >>>>>>> >>>>>>> -- >>>>>>> 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/to >>>>>>> pic/web2py/eH5y3Yvz56Q/unsubscribe. >>>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>>> [email protected]. >>>>>>> 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/to >>>> pic/web2py/eH5y3Yvz56Q/unsubscribe. >>>> To unsubscribe from this group and all its topics, send an email to >>>> [email protected]. >>>> 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 [email protected]. For more options, visit https://groups.google.com/d/optout.

