Index
Index 2
Why I use Linux and Firefox
HTML DB & Javascript
The Basics
Enable/Disable Form Items
HTML DB Javascript Remix
Show/Hide/Toggle Form Items
htmldb_Get Introduction
AJAX & DHTML
AJAX
Set Multiple Items
(AJAX) Auto Update Report
(AJAX) Collection Control
(AJAX) Process On Demand
(AJAX) Report Pull
(AJAX) Report Row with Detail
(AJAX) Select Items
(AJAX) Set Item Value
(AJAX) Tree
htmldb_Get Aysnc Extension
DHTML
Form Element Focus
Progress Meter On Submit
Region Tabs
Report Row With Detail (iframe)
Report Row with Detail
Shuttle (Item Based)
Shuttle (PL/SQL Based)
Smart Table
List (DHTML Tree)
Show/Hide Report Columns
HTML DB Usage
Linked Reports
HTML/CSS/Layout
HTML DB DHTML Tree
Region Position
Report Row Templates
Multi Region Form Layout
Vertical Aligned Regions
Layout Example
SVG / Canvas
Canvas #1
Custom Charts
Thermometer
Scatter (Coming Soon)
Timeline (Coming Soon)
SVG Knowledge Tree
Pie Chart CSS
Bar Spacing
Application Exports / CSS / JS
Ajax And Collections
Index
>
AJAX and DHTML
>
Ajax And Collections
Collection Control
Collection
Collection_1
Collection_2
Collection_3
Add Collection Item
Return Format
TABLE
XML
NONE
Collection Functions
Collection Drop
Code
Require the
collections.js
javascript file.
AJAX_COLLECTION_PRC
create or replace PROCEDURE "AJAX_COLLECTION_PRC" AS begin /* create collection id add has been called but no collection */ if(upper(v('AJAX_CURRENT_COLLECTION_ACTION'))='ADD' and wwv_flow_collection.collection_exists(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION'))) = false) then HTMLDB_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION'))); end if; if(wwv_flow_collection.collection_exists(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION'))))then if(upper(v('AJAX_CURRENT_COLLECTION_ACTION'))='DELETE') then HTMLDB_COLLECTION.DELETE_COLLECTION(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION'))); elsif(upper(v('AJAX_CURRENT_COLLECTION_ACTION'))='TRUNCATE') then HTMLDB_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION'))); elsif(upper(v('AJAX_CURRENT_COLLECTION_ACTION'))='SORT') then HTMLDB_COLLECTION.SORT_MEMBERS(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION')),p_sort_on_column_number => 1); elsif(upper(v('AJAX_CURRENT_COLLECTION_ACTION'))='CREATE_COLLECTION_FROM_QUERY') then if(wwv_flow_collection.collection_exists(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION'))) = true) then HTMLDB_COLLECTION.DELETE_COLLECTION(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION'))); end if; elsif(upper(v('AJAX_CURRENT_COLLECTION_ACTION'))='ADD') then HTMLDB_COLLECTION.ADD_MEMBER(p_collection_name =>upper(v('AJAX_CURRENT_COLLECTION')),p_c001 =>v('AJAX_CURRENT_COLLECTION_ITEM')); end if; htp.p(upper(v('AJAX_CURRENT_COLLECTION_ACTION'))); if(upper(v('AJAX_COLLECTION_FORMAT'))!='NONE' and wwv_flow_collection.collection_exists(p_collection_name=>upper(v('AJAX_CURRENT_COLLECTION'))))then /*add extra output options here*/ if(upper(v('AJAX_COLLECTION_FORMAT'))='XML')then owa_util.mime_header('text/xml', FALSE ); htp.p('Cache-Control: no-cache'); htp.p('Pragma: no-cache'); owa_util.http_header_close; htp.p('<collection id="'||upper(v('AJAX_CURRENT_COLLECTION'))||'">'); for rec in (SELECT * FROM htmldb_collections WHERE collection_name = upper(v('AJAX_CURRENT_COLLECTION'))) loop htp.prn('<row><item>' || rec.c001 || '</item></row>'); end loop; htp.p('</collection>'); else htp.p('<table cellpadding="0" border="0" cellspacing="0" summary="" id="'||upper(v('AJAX_CURRENT_COLLECTION'))||'">'); htp.p('<tr><th>'||upper(v('AJAX_CURRENT_COLLECTION'))||'</th></tr>'); for rec in (SELECT * FROM htmldb_collections WHERE collection_name = upper(v('AJAX_CURRENT_COLLECTION'))) loop htp.prn('<tr>'); htp.prn('<td>' || rec.c001 || '</td>'); htp.prn('</tr>'); end loop; htp.p('</table>'); end if; end if; end if; /*clear all values from app level items*/ HTMLDB_UTIL.SET_SESSION_STATE('AJAX_COLLECTION_FORMAT',null); HTMLDB_UTIL.SET_SESSION_STATE('AJAX_CURRENT_COLLECTION_ACTION',null); HTMLDB_UTIL.SET_SESSION_STATE('AJAX_CURRENT_COLLECTION',null); HTMLDB_UTIL.SET_SESSION_STATE('AJAX_CURRENT_COLLECTION_ITEM',null); end;
Notes
Forum Link