Traditionally, PHP scripts output HTML code. However, outputting HTML while also implementing business logic and retrieving data is somewhat cumbersome.
Now, instead of outputting HTML code, the PHP controller script only has to fetch the data to display. The data is then automatically merged with the user interface definition in the Rich Display File.
All user input to the controller is received as POST data, even though the Web page itself is never truly posted or submitted. Profound UI utilizes AJAX, instead of submitting and reloading pages, for better performance.
For example, if a Text Box widget is bound to a field named Customer, $_POST['Customer'] in your PHP controller can be used to retrieve the customer entered by the user.
Output from the controller is sent as an associative array, encoded in JSON. If the PHP controller returns no output, the default Profound UI End of Session screen is displayed. If you would like, you can avoid this End of Session screen entirely by always returning data from your controller.
The only required array element is ‘view’, which provides a path to the Rich Display File to use for displaying a screen. For example, if you created a simple screen in the Visual Designer, to output this screen, you only need the following line of code in your PHP script.
Where /dspf/myscreen.json is the relative URL path to the Rich Display File.
This simple PHP script will display the screen defined by the Visual Designer.
The following is a list of options that can be provided with the associative array sent on output:
- view - path to the Rich Display File.
- screen / screens – since multiple screens or formats can be defined in the Rich Display File, the ‘screen’ option allows you to specify the name of the screen to display. You can also specify an array of screen names that are to be overlaid using the ‘screens’ options. If ‘screen’ or ‘screens’ is not specified, the first screen within the Rich Display File is displayed.
- data – an array of simple name/value pairs used to populate the screen with data. Additional name/value pairs can also be sent. For example, you can send an entire database record to be displayed on the screen, even if some of the database fields are not defined on the display yet. If these fields are later added to the display, they will appear automatically without changes to the PHP script. For Grid or Subfile data, an array of values must be sent, and each entry in the array should contain an object with name/value pairs corresponding to the cells in the grid.
- controller – redirects control to another PHP controller.
- redirect – redirects the browser to another Web site or URL.
The following Rich Display File examples are provided in both RPG and PHP code.