Wednesday 9 December 2015

Book: Pro jQuery in Oracle APEX

The word on the street is my book is now available.

Update: The original copy mistakenly had a draft of  Chapter 9 included. If you had an early copy, please be sure to read the revised chapter online.

If you like using dynamic actions in APEX and want to learn how to use jQuery selectors effectively, this book is for you.

If you want more flexibility with your dynamic actions, and understand how handy this.triggeringElement can be, give it a read.

If you want some more ideas on how to improve the way your users interactive with your data, check it out.

Practical techniques to enhance your APEX user interface, written for APEX 5.0.

Complete acknowledgements in the book, but thank you to Alex Fatkulin for being the technical reviewer. Any mistakes you might find are on me, some chapters got some major revisions after Alex's eyes cast through them. In part thanks to the APEX 5.0 release, in part to me continuing to learn better ways to write jQuery.

Roel has already spotted a mistake, thanks mate ;p
I missed the second X when referring to built in substitution string APP_AJAX_X01.

I feel like I'm standing on the shoulders of some giants who have paved the way before me. Without the help of the broader community on the OTN forums, StackOverflow, Slack, Twitter, conferences and people sitting right next to me, such an accomplishment would not be possible. Three in particular have been vital in my learning of jQuery, thanks Tom PetrusJari Laine, and Jeff Eberhard.

I've reviewed a bunch of books (and things) in the past, too, if you're looking for more book selections. I bought a few in the Cyber Monday sales, including the revised, multi-author gold nugget that is Expert Oracle APEX, plus a couple on node.js.

I welcome you all to review mine on Amazon or your blog once you've had a read. Hit me on Twitter or Slack if you have any questions or commentary. I welcome your input. It was quite the experience writing this and I have all the hesitations I'm sure many before me have faced regarding it's reception. It was a rather lone project, but one undertaken with pride and enthusiasm.

I'll write a few posts over the next few weeks that might whet your appetite for some jQuery action. And no, I wouldn't rule out writing another one day!



  1. Hello Scott,
    Bevor I present my fussy comments :-) , let me say: Thank you for this book.
    I suspend reading it on chapter 17 to go back to the beginning, since I realized that it’s hard to recognize the below after a while – and even when reading it a second time.
    So for now this is what I found so far.
    Page Mark wrong correct Hint/comment
    6 Table 1-2, SALARY 5000 7500 I think Table 1-2 should reflect the result of the UPDATE-statement for salary above;
    The same for Figure 1-3 on page 7
    27 “Mobile Emulator” Figure 3-3 Figure 3-4 Wrong reference to Figure on page 28
    49 + 50 Under “Figure 5-6” The first two records are the same as on page 50 under “Option B …” I’m assuming this is not correct; however not sure.
    56 3. row verifiedwithin verified within Missing blank space
    104 “Sourcing …” Bases on this check. The… Bases on this check the callback… Seems the dot is wrong here and the two record should be (only) one.
    105 Page bottom last but one record using the htm() call using the html() call The “l” is missing here
    108 Page bottom last but one record reigon region Just a typo
    138 “Including vis Library” thefollowing the following Missing blank space
    142 Line 8, eh´nd of line Listing 15-6 Listing 14-6 Wrong reference to Listing on page 139

  2. Thank you for this book. I'm sure this book will help developers to create rich and awesome apex applications.

  3. Thank you Scott - it's great idea!
    I can't wait to get my copy.

  4. Hi there,
    I think in the context of this book - in particular regarding ajax (sync/async) the following is quite interesting stuff:

  5. Thanks Andre. Have a read through this post regarding chapter 9 and the async parameter.

  6. Just received this book today and dive in ... Thank you for writing this book.


  7. Hi Sott:

    I am so excited about this book. I got it for 1 week now and squeezed all possible time to read it and leveraged what I learned from this book to some apex applications I built for my company.

    When I read this book, I felt it is Almost a book written just for me ... It fit me very well: I am an oracle developer and had worked with Oracle EBS suite extensively for 12 years ... I began exploring apex in y2010 (v3.2) and get so excited when I found as a plsql developer I can build some nice web applications ... Feel so good ... Now, I want to learn apex to next level ...

    Since then, I convinced the IT here to introduce Apex as a new tool and platform ... I built few Apex applications to extend oracle EBS (r12) used here ...

    Now , I am starting working on a project to convert an existing web application (the developer left company 2 years ago uses Java as backend) using apex ... the application build a workflow to drive some business process ... There is no document related to it ... I have to a completed reverse engineering for it ...

    I found I need to master more about jQuery, Ajax for my project ....then, I saw this book ... Very good timing ...

    I push my 2 kids (6 yr boy and 3 yr girl) to my wife and dive into this book every night and managed completed 13 chapters in 1 week ... My wife is not that happy given she also have a full time job ... :-)

    I am in Chicago ... If you plan to attend Odtug kscope16 this summer hosted in Chicago,that will be super .... There are not that many Apex consulting companies in Chicago area ... I wish someone can establish some sort of APEX user group here ...

    Quick question: the apex_json example on page 123 and 124, does it only works for DB 12c? I tried in 11gr2 with apex 5 installed and console.log(pData.emps[0]) didn't generate any output....

    I used below code:

    ,{ }
    ,{ dataType:"json" }
    console.log('Kevin - ' + pData);
    console.log('Kevin - ' + pData.emps[0]);


    Above code generate below in the console:

    Kevin - [object Object]
    Kevin - [object Object]

    I am assuming the dataType should be "json" for apex.server.process() call ...

    Btw, the example using list ago (p121 a p122) is working for me ...



  8. Hi Kevin, thank you for your interest and kind words. You also sound like just the person I'd expect to gain from this book.

    Datatype of json will really depend on what your PL/SQL is sending to htp.p()

    If you only console.log(pData) you will get better breakdown of components. I find if you concatenate strings you get the far from useful [object Object] result.

    Unfortunately I won't be there in Chicago, but it sounds like it will be a cracking event.