Typo: I meant atob On Fri, May 17, 2019, 8:21 AM Eliezer (Vlad) Tseytkin < [email protected]> wrote:
> Those are span elements inside <td> inside<tr> in a table. > > But the values themselves are fine - I can print them out, and they are > correct. It's only a problem when I try to apply btoa function to it. > > On Fri, May 17, 2019, 8:09 AM villas <[email protected]> wrote: > >> Hmm, not sure. >> Are you getting the values from <input> elements? >> Try: >> >> var hereWeAre = $(this).val(); >> >> >> On Friday, 17 May 2019 12:13:03 UTC+1, Vlad wrote: >>> >>> I thought so and tried: >>> >>> $(".EncodedDescriptionField").each( function(index, element ){ >>> var hereWeAre = $(this).text(); >>> var decodedString = atob(hereWeAre); >>> console.error(hereWeAre); >>> console.error(decodedString); >>> }); >>> >>> this brings up an exception: >>> >>> Uncaught DOMException: Failed to execute 'atob' on 'Window': The string >>> to be decoded is not correctly encoded. >>> >>> I've also double-checked the values - they are correct. For example, >>> when I replace with the following: >>> >>> var decodedString = atob("Q29va2llcyBvbmU="); >>> >>> it decodes just fine, and the string itself I pick right from there - >>> that's the value it has when it throws exception. >>> >>> Have no slightest clue what could possibly go wrong. >>> >>> >>> On Friday, May 17, 2019 at 7:06:54 AM UTC-4, villas wrote: >>>> >>>> Maybe you need to iterate through the class elements. See this: >>>> >>>> https://stackoverflow.com/questions/4735342/jquery-to-loop-through-elements-with-the-same-class >>>> >>>> >>>> >>>> On Thursday, 16 May 2019 23:58:28 UTC+1, Vlad wrote: >>>>> >>>>> Just to clarify: >>>>> >>>>> the following works perfect for one field by ID (decrypts it back): >>>>> var encodedDescription = $("#CurrentCartDescription").text() >>>>> $("#CurrentCartDescription").html(atob(encodedDescription)); >>>>> >>>>> However, when I try to do it for a bunch of fields at once using class >>>>> (instead of id), it doesn't work - doesn't touch the values: >>>>> >>>>> $(".EncodedDescriptionField").html(atob($(".EncodedDescriptionField").text())); >>>>> >>>>> I am sure I am missing something basic... Greatly appreciate >>>>> suggestions - >>>>> >>>>> On Thursday, May 16, 2019 at 6:54:14 PM UTC-4, Vlad wrote: >>>>>> >>>>>> I had no clue about it - I mean never heard the terms :) >>>>>> >>>>>> Thank you very much for point to the direction. After some googling, >>>>>> it is almost working. >>>>>> >>>>>> Encoding is just fine (using btoa). >>>>>> >>>>>> When I read it back and want to decode - it's not yet behaving right. >>>>>> I'm suspecting my javascript is a problem. >>>>>> >>>>>> There is a bunch of fields which now have encrypted values (class >>>>>> 'EncodedDescriptionField'), and I am trying to use the following to >>>>>> reclaim >>>>>> the original values: >>>>>> >>>>>> >>>>>> $(".EncodedDescriptionField").html(atob($(".EncodedDescriptionField").text())); >>>>>> >>>>>> What am I doing wrong? (It doesn't change the values - they remain as >>>>>> they are, encrypted) >>>>>> >>>>>> On Thursday, May 16, 2019 at 5:35:39 PM UTC-4, João Matos wrote: >>>>>>> >>>>>>> Have you considered base64 encoding/decoding? >>>>>>> >>>>>>> quinta-feira, 16 de Maio de 2019 às 20:43:58 UTC+1, Vlad escreveu: >>>>>>>> >>>>>>>> I have the following javascript in the view: >>>>>>>> >>>>>>>> var id = $('#CurrentCartId').text(); >>>>>>>> var description = $(this).text(); >>>>>>>> var url='{{=URL('cart','description')}}'; >>>>>>>> url += '/' + id + '/'; >>>>>>>> url += description; >>>>>>>> ajax(url,[],':eval'); >>>>>>>> >>>>>>>> the reason I use url+= to pass parameters instead of using args in >>>>>>>> the URL helper is because the parameters are coming from the html >>>>>>>> itself - >>>>>>>> they are not known in the controller py. >>>>>>>> >>>>>>>> now the problem is that it changes the description and I have no >>>>>>>> way to recover its original value. for example, when description is >>>>>>>> "askjdf >>>>>>>> d dka;lskdj 3838&^&%$#@ ((alksjdf__ - ))" (just a randomly typed >>>>>>>> string >>>>>>>> in this case), it comes out as "askjdf_d___dka_lskdj__3838_____". >>>>>>>> Obviously, it needs to do this conversion in order to pass the >>>>>>>> parameter, >>>>>>>> but I need to be able to recreate the original string, entered by the >>>>>>>> user. >>>>>>>> >>>>>>>> Is there a better way of doing this? I.e. a better way of passing a >>>>>>>> parameter in a way that it could be "recreated" and stored in the >>>>>>>> database >>>>>>>> exactly as typed by the user? >>>>>>>> >>>>>>> -- >> 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/cyiquWAQU4w/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/web2py/a20934f0-54a3-4bd9-95ff-0d3b60cbcfa1%40googlegroups.com >> <https://groups.google.com/d/msgid/web2py/a20934f0-54a3-4bd9-95ff-0d3b60cbcfa1%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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/CABZ%2BKCBUPjbKQkZyVDt_nAoJtaAFRfMbwAXMHqb5-ZB8KGEdpg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

