Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Hijacking the ajax callback

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Hijacking the ajax callback

    I've opened a grid based upon Table_One.
    The grid has a new column(field) not in Table_One.
    Each records' row has a button attached to it.
    After entering data into the new column in the grid, when the button Onclick is fired I want to
    save the record, including the new column data, to Table_Two which includes the new field.

    What code would make an ajax callback and save the record to a different table without changing
    the data in the original table. Some of the original field names in Table_One might be different in
    Table_Two, so some mapping would be involved.

    If coding the button OnClick event, and using the action javascript, and you attach the ajax callback
    action, OR use the server-side Xbasic, both of these options return a string of javascript commands
    to execute in the Browser. It seems I want to hijack and redirect the ajax callback to update a different
    table than the grid is based upon.

    #2
    Re: Hijacking the ajax callback

    This is what ajax callback is all about, execute some code on the server and return some js code if needed. Upon calling the callback event you submit the data from grid based on table_one and in the event you open another connection to table two in order to create a record filled with the submitted data from table one. There's no hijacking involved.
    Frank

    Tell me and I'll forget; show me and I may remember; involve me and I'll understand

    Comment


      #3
      Re: Hijacking the ajax callback

      Frank,
      Thanks for the reply.
      That is the question, how do you open a second connection to Table_Two.
      It seems like the ajax callback is hard wired.
      Where do I see the callback code so it can be modified to save the data to Table_Two?

      If someone opens a second connection, while allowing the first connection to save the data
      to Table_One, what would happen to the extra data from the new column in the grid that does
      not have a corresponding field in Table_One?

      Am I correct that the first connection must be closed before opening the second? This brings
      me back to the original question, how to cancel or recode the first connection to point to
      Table_Two?

      Thanks,
      John

      Comment


        #4
        Re: Hijacking the ajax callback

        John,

        Dive into the wiki and read articles like these for a starter:
        SQL http://wiki.alphasoftware.com/Learni...ith+SQL+Tables
        DBF http://wiki.alphasoftware.com/TABLE.OPEN+Method
        Frank

        Tell me and I'll forget; show me and I may remember; involve me and I'll understand

        Comment


          #5
          Re: Hijacking the ajax callback

          Hi

          maybe you allow me to hijack your thread.

          My issue is that inside of the AJAX callback called "MyCallback" I do some SQL query and get a result in a variable called Result.

          Now I want to pass this result back int the Desktop Java realm:

          ...
          ...
          jscmd = <<%js%
          {grid.object}.setValue('G','numberOf',rowNum, Result);
          // alert('Result'); -> same issue
          %js%

          MyCallback = jscmd



          Unfortunately I get "unknown variable "Result"".


          Mhmm..?

          Comment


            #6
            Re: Hijacking the ajax callback

            Shouldn't you just double quote the javascript that your callback returns ? The first 2 parameters of the setValue method need to be in uppercase not just the first one.

            jscmd = "{grid.object}.setValue('G','NUMBEROF',rowNum, Result);"
            MyCallback = jscmd
            Frank

            Tell me and I'll forget; show me and I may remember; involve me and I'll understand

            Comment


              #7
              Re: Hijacking the ajax callback

              Thanks Frank

              No that is not the issue but was rather my typing here.
              My issue is how to get any value that a Ajax Callback (XBasic) will fill with a value
              back into Java - even an alert will not work.


              Eriks

              Comment


                #8
                Re: Hijacking the ajax callback

                The result of your Xbasic callback is some Javascript code that still needs to be executed at the client side, you are feeding the string that contains Javascript into your browser back from the server where is was computed. What exactly are you trying to accomplish ?
                Frank

                Tell me and I'll forget; show me and I may remember; involve me and I'll understand

                Comment


                  #9
                  Re: Hijacking the ajax callback

                  I did not focus on the setValue method; Result is a variable you obtained from xBasic so you have to build your javascript string as follows:

                  jscmd = "{grid.object}.setValue('G','NUMBEROF',rowNum, "+Result+");"

                  If Result is not a character type variable then you'll have to convert it.

                  PS: Are you an intl developer? If so maybe you can indicate your country in your profile?
                  Frank

                  Tell me and I'll forget; show me and I may remember; involve me and I'll understand

                  Comment


                    #10
                    Re: Hijacking the ajax callback

                    Your javascript command would have to be

                    MyCallBack = "alert('" + result + "');"

                    You have to tear down the variables set in the callback and allow them to get resolved when passed out of the callback.

                    You'd have to do the same for rowNum as well.

                    Comment


                      #11
                      Re: Hijacking the ajax callback

                      Or use the {grid.rowNumber} placeholder
                      Frank

                      Tell me and I'll forget; show me and I may remember; involve me and I'll understand

                      Comment


                        #12
                        Re: Hijacking the ajax callback

                        Frank

                        I appreciate your help.
                        I am relatively new to Alpha web stuff and the one thing that puzzle me most is the one way DATA flow from the client (browser) to the server.

                        If I do a callback to the server I can do all kinds of things, like calculating stuff that was passed through the e object or doing SQL operations but I have not found a way to get the calculated data back to the browser.

                        I can do:

                        if result is 5 then
                        jscmd ="alert(' result was 5')"
                        Callback = jscmd


                        But what about if the result is stored in a variable "myRESULT", that can be anything between 1 and 1000000?
                        I don't seem to be able to do

                        jscmd = "alert('result was" + myRESULT + "')"

                        The string will be fine, but

                        Callback=jscmd will say "unknown variable"


                        ....

                        Even worse is the fact that I was told that I just can't use AJAX to get data from the server

                        Like

                        JavaCode
                        JavaCode
                        Callback -> do something on the server ( SQL Query)
                        a = Result from Callback

                        Javacode to do something with a
                        ...
                        ...



                        Do I have to write everything on the server into a table and then open a new Grid
                        via callback Javacode that shows the the results?


                        Thanks

                        Eriks

                        PS: I am working and living in the USA but I am from Europe

                        Comment


                          #13
                          Re: Hijacking the ajax callback

                          Erkik,

                          This works, so I'm not sure why you're getting an error

                          Code:
                          Dim myResult as n
                          Dim jscmd as c
                          myResult = 5
                          jscmd = "alert('Here is the result " + myResult + "');"
                          DisplayVar = jscmd
                          Sounds like you're not creating and assigning your var in the xbasic code.

                          As for getting the data back into the grid, the ajax callback provides everything you need by use of the "e" object

                          e.g.

                          'If you set certain properties in 'e._set' then the appropriate Javascript code will be automatically generated in the Ajax response
                          'Examples:
                          'e._set.lastname.value = "Smith" --- will set the value of the 'Lastnme' field in the current row to "Smith"

                          So, basically, you're working as a client with the grid... you press a button or do something which fires the ajax callback - stuff gets sent to the server, data gets read... or whatever else you want to do... and you set variables and do calcs. Now... when you're all done you use the "e" object and shove stuff back into the grid. It's elegant.
                          Last edited by Davidk; 01-20-2012, 08:14 PM.

                          Comment


                            #14
                            Re: Hijacking the ajax callback

                            Thanks David

                            I will try that, I did not know that the e values can be set on the server side with "e._set.lastname.value" AND will be reflected
                            in the client grid after returning from the Ajax call.
                            Must have missed that video...


                            Since I have you ... hope you don't feel abused..

                            Where is it explained how the XBasic "string operators" "<<jscmd% " "<<sql%" .. work.

                            It looks as if they are used to format the strings, but I had a hard time to do this (since I don't understand it"
                            and jscmd=" ...;" or sql_query= "..." seem to work just fine.

                            Thanks

                            Eriks

                            Comment


                              #15
                              Re: Hijacking the ajax callback

                              I may be mistaken, but I don't think e._set.lastname.value is anything that happens on the server side. The "e" object gets set on the server side, but I believe javascript code is generated that is executed back in the client when controls comes back.

                              Whenever I see <<jscmd% etc my eyes cross. I haven't really looked it much, but I got the impression that inserting variables was a bit tough to do. Easily coding <<% stuff for javascript and sql is on my list of things to wrap my head around. I usually go with jscmd = "javascript;javascript;javascript;" I can read it and understand it easily... but that's just me and my limitation.

                              Comment

                              Working...
                              X