Hi,
I have a pretty standard piece of Javascript that populates two page items based upon the result of a select list.
I'd like to change the select list to a Pop-Up LOV, but this breaks the functionality.
I presume that I need to use a different
var get function, however, have had no luck in trialing different solutions.
Can anyone help?
Details Below.
Regards-
Ronald.
--------
Function Overview:
Select List P4_PRODUCT_ID selects two product parameters: area and item, and puts them into P4_AREA_ID and P4_ITEM_ID.
P4_AREA_ID and P4_ITEM_ID are pop up LOV's and happily accept the text input.
I wish to change P4_PRODUCT_ID to also be a pop up LOV, but when doing so, it breaks the dynamic functionality.
--------------
CODE:
Select List: P4_PRODUCT_ID
HTML Form Element Attributes:
onchange="pull_multi_value(this.value)";
P4 Page Header:
You'll see that I've tried several methods, none worked. Am I using the wrong one?
<script type="text/javascript">
<!--
function pull_multi_value(pValue){
// var get = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=Set_Multi_Items',0);
var get = new htmldb_Get(null,html_SelectValue('pFlowId'),'APPLICATION_PROCESS=Set_Multi_Items',0);
// var get = new htmldb_Get(null,html_GetElement('pFlowId').innerHTML,'APPLICATION_PROCESS=Set_Multi_Items',0);
// var get = new htmldb_Get(null,html_GetElement('pFlowId').innerHTML=$v(pFlowId),'APPLICATION_PROCESS=Set_Multi_Items',0);
if(pValue){
get.add('PRODUCT_ID',pValue)
}else{
get.add('PRODUCT_ID','null')
}
gReturn = get.get('XML');
if(gReturn){
var l_Count = gReturn.getElementsByTagName("item").length;
for(var i = 0;i<l_Count;i++){
var l_Opt_Xml = gReturn.getElementsByTagName("item");
var l_ID = l_Opt_Xml.getAttribute('id');
var l_El = html_GetElement(l_ID);
if(l_Opt_Xml.firstChild){
var l_Value = l_Opt_Xml.firstChild.nodeValue;
}else{
var l_Value = '';
}
if(l_El){
if(l_El.tagName == 'INPUT'){
l_El.value = l_Value;
}else if(l_El.tagName == 'SPAN' &&
l_El.className == 'grabber'){
l_El.parentNode.innerHTML = l_Value;
l_El.parentNode.id = l_ID;
}else{
l_El.innerHTML = l_Value;
}
}
}
}
get = null;
}
//-->
</script> Application Process: Set_Multi_Items
DECLARE
v_area VARCHAR2 (200);
v_item VARCHAR2 (200);
CURSOR cur_c
IS
SELECT AREA_ID, ITEM_ID
FROM PRODUCTS
WHERE PRODUCT_ID = TO_NUMBER (v ('PRODUCT_ID'));
BEGIN
FOR c IN cur_c
LOOP
v_area := c.AREA_ID;
v_item := c.ITEM_ID;
END LOOP;
OWA_UTIL.mime_header ('text/xml', FALSE);
HTP.p ('Cache-Control: no-cache');
HTP.p ('Pragma: no-cache');
OWA_UTIL.http_header_close;
HTP.prn ('<body>');
HTP.prn ('<desc>this xml genericly sets multiple items</desc>');
HTP.prn ('<item id="P4_AREA_ID">' || v_area || '</item>');
HTP.prn ('<item id="P4_ITEM_ID">' || v_item || '</item>');
HTP.prn ('</body>');
EXCEPTION
WHEN OTHERS
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.prn ('<body>');
HTP.prn ('<desc>this xml genericly sets multiple items</desc>');
HTP.prn ('<item id="P4_AREA_ID">' || SQLERRM || '</item>');
HTP.prn ('</body>');
END;