Forum Discussion

DougHines's avatar
DougHines
Qrew Trainee
6 years ago

Another jQuery help request...back to basics..

I could use some help with a simple looping script I have been attempting to put together for the last two weeks with no success.  The purpose of the script is to easily add a range (large range) of phone numbers to our quickbase database without the need of csv importing or repeatedly using "Copy+Paste Special" in data entry mode.  I have been learning Javascript as I go, depending on the project I am assigned/asked to do.

Originally I had a JS function in the IOL file that I was attempting to call from a Formula URL button, but with no luck. It went something like this :


function addTNRange(start,end,prod,loc){
 // Error checking here
// for loop to add a record for every TN in the given range
alert("Range added.")
};


I have tried both the basic IOL method and getScript.  Is this the right approach? Is there a better method for what I'm attempting to do?
  • Where is the actual data coming from? Is it from another Quick Base table, an external source?

    For clarity - you description has an odd statement about trying to call IOL from a formula-url. IOL is used when you need to run a script without user intervention. The idea being that when an image loads on the page - your browser does something with that, like run a script. So perhaps I'm misunderstanding - but those two normally aren't combined and that you have to click a formula-url.

    If you're clicking a button - getScript is one option - another is to actually just use a Quick Base code page.

    getScript is a jQuery function - in this case, that would call out and load your JS file, and you could have a button on a Quick Base run your function with your getScript

    A Quick Base code page is similar, in that you could set up a simple HTML page, and write you own Javascript into it. The advantage being there that you're not bound by Quick Base formula syntax and it makes it 100x easier to debug on the fly. 

    In that case - all you do is make a formula-url that directs you to the code page like: 

    https://yourrealm.quickbase.com/db/appDBID?a=dbpage&pageid=2

    Where page ID 2 is your code page that contains HTML and JS. What I do a lot in this is just to put a really simple spinner as the HTML body so you know the page is doing something, and then all of you JS just runs. Once its done - you kick a re-direct back where ever you want.

    Chayce Duncan | Technical Lead
    (720) 739-1406 | chayceduncan@quandarycg.com
    Quandary Knowledge Base
    • DougHines's avatar
      DougHines
      Qrew Trainee
      My results when using getScript were not very clear.

      Initially I setup a code page : addTNRange.js
      The only thing that this page had was an alert() letting me know the page was successfully sourced.

      I made a var that pointed to this code page in the usually manner and made a getScript($url) call that worked.

      My thinking next was to create a function inside the addTNRange.js and then to call that using getScript, but that's where everything derailed.  I kept getting pages with  [object Object] regardless of what I tried.

      I will try your method of calling an html page instead of a js page, or is there a difference?
    • QuickBaseCoachD's avatar
      QuickBaseCoachD
      Qrew Captain
      ... back to Chayce's question .. where do these "phone numbers" come from?  Is this some external data source or are they in Quick Base somewhere?  Maybe there is an easier way.  Can you stand back from the javascript and tell us the overall big picture goal here.
    • ChayceDuncan2's avatar
      ChayceDuncan2
      Qrew Cadet
      To answer your final question about an HTML page vs JS - the answer is primarily just the debugging. Using getScript() in the formula means you're debugging using a Quick Base field which is much more challenging. Using a generic HTML page at least allows you to see your code in action a little bit more clearly. 

      Chayce Duncan | Technical Lead
      (720) 739-1406 | chayceduncan@quandarycg.com
      Quandary Knowledge Base
  • Doug, if you wanted to work with me one on one to be able to enter a sequential range Start and end, we could get that working with natively (no code, just URL formula buttons) in about an hour on a GTM session.

    QuickBaseCoach.com