Do not install this package on a real C5 site. Use it on a development site to help learn about AJAX.
This package is a learning experience, providing lesson examples of opening AJAX dialogs and exchanging AJAX data from a block, in Add, Edit and View. Examples are boiled down to a minimum to illustrate how they work (or dont).
Exchanging data between the browser and server using AJAX, or popping up a dialog using AJAX, from Concrete 5 is both straightforward and confusing. Straightforward because, once you boil it down to the basics, there is not much to it. Complicated because Concrete5 provides 3 slightly different ways of declaring AJAX action handlers:
Which works best depends a lot on how you want to organise your package and in what context you want to use the AJAX transaction. Most importantly, a function beginning "action_" in the block controller will not work if you need to do AJAX within the block's Add dialog because the bID does not exist until after the Add has completed, so the C5 dispatcher is unable to route such an AJAX request.
Rather than get bored and confused reading about all the various combinations and permutations, install this package on a development site and explore the behaviour of the blocks during Add, Edit and View:
Within an Add or Edit dialog, the reliable choices are limited to: