About db refresh, when i go to the database administration page in the app, and open the post.db page, i have to manually refresh the page to see the latest inserted value which does not match with the returned value as explained. That's why i was thinking of a way to refresh the db after the input and insert to the Field, perhaps to get the last inserted record. Regards
On Wed, Nov 15, 2017 at 5:46 PM, Maurice Waka <mauricew...@gmail.com> wrote: > *controller* > @auth.requires_login() > def view_searches(): > form = SQLFORM(Post) > if form.process().accepted: > #pass > response.flash = 'done' > if request.vars.message: > db.post.insert(message = request.vars.message) > db.commit() > quiz = db(db.post.author == auth.user.id).select(db.post.ALL, > limitby=(1,0)) > return dict(form =form, quiz=quiz) > > N/B > The several functions that will need to use 'quiz' string to process data. > I was posting it to html to view if latest string matches the one on db as > previously described. Otherwise, the functions will pick the string from > the updated db with the latest string as follows: > > def Search_name(): > db = current.db > auth = Auth(db, hmac_key=Auth.get_or_create_key()) > auth.define_tables() > name = [r.message for r in db(db.post.author == auth.user.id > ).select(db.post.ALL)][-1] > return name > > > *the view.html* > See www.sololearn.com from where i borrowed this html code. > > {{extend "layout.html"}} > > <!DOCTYPE html> > <html> > <head> > <script src="https://code.jquery.com/jquery-3.1.1.js"></script> > <meta name="viewport" content="user-scalable=no, > initial-scale=1.0, maximum-scale=1.0" /> > <title>Page Title</title> > </head> > <body> > <div id="header">Chat Bot</div> > <div id="messages"> > <a href='https://code.sololearn.com/Wm2n17OoSTDk/?ref=app'> > Original</a> > </div> > <form id='user' onsubmit="return false;"> > <input type="text" id="msgbox" name='message' > placeholder="Type a message..." /> > <button id="send" onclick="ajax('{{=URL('view_ > searches')}}',['message'],'target');" >SEND</button> > </form> > </body> > </html> > > <style> > * { > margin: 0px; > user-select: none; > -webkit-user-select: none; > -moz-user-select: none; > } > body { > margin: 0px; > height:400px; > bottom:0; > } > #user { > width: 100vw; > position: fixed; > left: 0px; > bottom: 0px; > display: block; > background-color: #EEE; > white-space: nowrap; > height:105px; > } > #msgbox { > width: calc(80% - 12px); > min-height: 25px; > max-height: 35px; > padding: 5px; > outline: none; > border: solid 1px #AAA; > display: inline-block; > vertical-align: center; > float: left; > background-color: #FFF; > border-radius: 25px; > resize: none; > margin: 0px; > word-wrap:break-all; > } > #send { > width: 20vw; > height: 35px; > display: inline-block > outline: none; > border: none; > color: #FFF; > background-color: #00F; > float: left; > border-radius: 25px; > padding: 0px; > cursor: pointer; > margin: 0px; > } > #send:active { > background-color: #00A; > outline: none; > } > #header { > display: flex; > justify-content: left; > align-items: center; > width: calc(100% - 30px); > height: 20px; > padding: 15px; > color: #FFF; > font-size: 200%; > font-weight: bolder; > background-color: #00F; > position: fixed; > font-family: arial; > } > #messages { > display: block; > width: 100vw; > height: calc(100% - 87px); > background-color: #EEE; > position: fixed; > top: 50px; > left: 0px; > overflow: auto; > overflow-x: hidden; > overflow-y: auto; > } > .left { > text-align: left; > /* > display: block; > */ > } > .right { > text-align: right; > /* > display: block; > */ > } > .incoming { > background-color: #FFF; > color: #000; > border: solid 1px #AAA; > } > .outgoing { > background-color: #00F; > color: #FFF; > } > .section { > display: block; > width: calc(100% - 30px); > padding-left: 15px; > padding-right: 15px; > margin-top: 7.5px; > margin-bottom: 7.5px; > } > .message { > display: inline-flex; > justify-content: left; > align-items: center; > border-radius: 25px; > padding: 10px; > font-size: 10pt; > } > input:first { > color: #F00; > } > .incoming:active { > background-color: #EEE; > } > .outgoing:active { > background-color: #00A; > } > * { > outline: none; > tap-highlight: none; > -webkit-tap-highlight: none; > -webkit-tap-highlight-color: none; > -moz-tap-highlight: none; > -moz-tap-highlight-color: none; > -khtml-tap-highlight: none; > -khtml-tap-highlight-color: none; > } > a { > display: block; > text-align: center; > } > </style> > > <script> > $(function(){ > var commands = { > "random":"var rand = (Math.floor(Math.random() * 10)); > incoming(rand);", > "commands":"var objstr = JSON.stringify(commands); objstr = > JSON.stringify(commands, null, 4); incoming(objstr)" > } > var responseSys = { > "hi":"Hello There!", > "bye":"GoodBye!" > }; > function cmd(name, action){ > commands[name] = action; > } > function outgoing(text){ > var newMsg = "<div class='section right'><div class='message > outgoing'>" + text + "</div></div>"; > $("#messages").append(newMsg); > } > function incoming(text){ > var newMsg = "<div class='section left'><div class='message > incoming'>" + text + "</div></div>"; > $("#messages").append(newMsg); > window.scrollTo(0, parseInt($("#messages").innerHeight)) > } > $("#send").click(function(){ > $("#msgbox").trigger("blur") > var text = $("#msgbox").val(); > if(text != null && text != ""){ > $("#msgbox").val(""); > text = text.replace(/</ig, "<"); > text = text.replace(/>/ig, ">"); > text = text.replace(/\n/ig, "<br />"); > outgoing(text); > reply(text) > } > else{ > // Praise the Sun > incoming("Please, don't send empty messages.") > } > }); > $("#msgbox").keyup(function(e){ > if(e.which == 13){ > $("#send").trigger("click") > } > else{ > // Do Nothing > } > }); > > incoming("Hello!<br />This is a small ChatBot made by Andrew > Grider. Feel Free to implement any commands or functions but please don't > change this message! If you do add to the code however, then feel free to > add your name to the contributors message!"); > incoming("Add responses using this JavaScript function, > responses(your_message, my_reply) and add commands using this function, > cmd(command_name, command_action)"); > incoming("Contributors:<br />Maz<br />The Coding Sloth") > function responses(msg, response){ > msg = msg.toLowerCase(); > responseSys[msg] = response; > } > function reply(txt){ > txt = txt.toLowerCase(); > if(txt[0] == "r" && txt[1] == "e" && txt[2] == "s" && txt[3] == > "p" && txt[4] == "o" && txt[5] == "n" && txt[6] == "s" && txt[7] == "e" && > txt[8] == "s" && txt[9] == "("){ > try{ > eval(txt); > } > catch(e){ > incoming(e); > } > } > else if(responseSys[txt] != undefined && responseSys[txt] != > null && responseSys[txt] != "" ){ > incoming(responseSys[txt]); > > } > else if(commands[txt] != null && commands[txt] != undefined && > commands[txt] != ""){ > try{ > try{ > eval(commands[txt]) > } > catch(e){ > incoming("Error Executing") > } > } > catch(e){ > incoming("Command not defined") > } > } > else if(txt[0] == "c" && txt[1] == "m" && txt[2] == "d"){ > try{ > eval(txt) > } > catch(e){ > incoming(e) ; > } > } > else setTimeout(function () { > return incoming('Just a sec...'); > }, 1000); > return setTimeout(function () { > return incoming('{{=quiz}}'); > }, 2000); > } > > responses("example", "My Response") > responses("hello", "Hello World.. or.. person.") > }); > </script> > > Much appreciated for your constant support. I wont ever forget! > Kind regards > Maurice. > > > On Wed, Nov 15, 2017 at 5:26 PM, Anthony <abasta...@gmail.com> wrote: > >> >> controller/default/index.py >>> ... >>> form =SQLFORM(Post, formstyle='table3cols') >>> if request.vars.message: >>> db.post.insert(message=request.vars.message) >>> pass >>> String = '' >>> for s in db(db.post.author==auth.user.id).select(db.post.ALL): >>> String = s.message >>> >> >> First, you don't need to loop through all the records just to get the >> last one -- instead, just index with [-1]. Or better yet, have the db sort >> in reverse order and use limitby=(0, 1) to get the last record. >> >> Anyway, in the code above, the final value of String should be the >> message from the record inserted above. Perhaps the error is somewhere in >> the code you haven't shown (e.g., the view code). >> >> Also, not sure what you mean by "refreshing the database". >> >> Anthony >> >> -- >> 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/ERqZpKfZgyc/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> web2py+unsubscr...@googlegroups.com. >> 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. For more options, visit https://groups.google.com/d/optout.