将目标项ID传递给ApplicationExpress(Apex)动态表单上的ajax回调
扩展Trent Schafer的优秀作品 我根据静态问题,利用Oracle文本,在每个答案项旁边添加了一个包含记录标题/摘要的选择列表 上述链接用于使用mods和下面未显示的save操作填充下面所示的页面结构。选择列表的onchange事件将检索完整记录并填充答案项,通过其ID标识答案项,该ID在匿名块中创建并命名为ans_var2 onchange事件导致变量ans_var2特定的变量声明部分出现TypeError ans_var2应该通过p_属性传入 控制台返回“未定义” 我已经使用定义的答案项ID成功地测试了下面的代码,但是表单是动态的,有未知数量的Q/a对 问题: 请告知是否有一种功能性方法可以发送动态生成的应答项ID,因为ans_var2方法可能只是错误的,或者语法不正确 顶点5.1.2将目标项ID传递给ApplicationExpress(Apex)动态表单上的ajax回调,ajax,oracle-apex,Ajax,Oracle Apex,扩展Trent Schafer的优秀作品 我根据静态问题,利用Oracle文本,在每个答案项旁边添加了一个包含记录标题/摘要的选择列表 上述链接用于使用mods和下面未显示的save操作填充下面所示的页面结构。选择列表的onchange事件将检索完整记录并填充答案项,通过其ID标识答案项,该ID在匿名块中创建并命名为ans_var2 onchange事件导致变量ans_var2特定的变量声明部分出现TypeError ans_var2应该通过p_属性传入 控制台返回“未定义” 我已经使用定义的答
--***Function and Global Variable Declaration***
function myFunction(val, ans_var2) {
apex.server.process(
'lab_ondemand', // Process or AJAX Callback name
{x01: val
}, // Parameter "x01"
{
success: function (pData) { // Success Javascript
apex.item("ans_var2").setValue(pData);
},
dataType: "text" // Response type (here: plain text)
}
);
}
--***PL/SQL Dynamic Content***
declare
ans_length number;
id_holder varchar2(4000) :='';
ans_var2 varchar2(4000) :='';
begin
for i in (
select *
from v_dynamic_qs
)
loop
sys.htp.prn('<table border="1" style="wide: 100%">');
sys.htp.prn('<tbody>');
sys.htp.prn('<tr>');
sys.htp.prn(' <td style="width:400px; valign:top";>');
sys.htp.prn('ID: ' || i.ID || '<br> Question Key: '|| i.question_key || '<br> Answer ID: ' || i.ans_id || '<br>');
sys.htp.prn(i.ID || '. ' || i.question_key || ' ' || i.ans_id);
sys.htp.prn('<a title="Properties" href="'||apex_util.prepare_url('f?p='||:APP_ID||':10:&SESSION.:::10:P10_ID:'||i.ID)||' "> <img src="#APP_IMAGES#go_icon.png" title="" alt="Open MS Word" height="22" width="22"></a>');
sys.htp.prn('<a title="" href="'||apex_util.prepare_url('f?p='||:APP_ID||':12000:&SESSION.:::10:P12000_ID,P12000_ANS_ID:'||i.ID || ',' || i.ANS_ID)||' "> <img src="#APP_IMAGES#find.jpg" title="" alt="" height="22" width="22"></a>');
sys.htp.prn(' </td>');
sys.htp.prn(' <td style="width:400px; valign:top";>');
if i.question_type = 'TEXT'
then
htp.prn('<p> <input class="dynamicQs" id="QS_' || i.question_key || '" type="text" value="' || i.question_ans || '" /></p>');
elsif i.question_type = 'TEXTAREA'
then
htp.prn('<p> <textarea class="dynamicQs" id="QS_' || i.question_key || '">' || i.question_ans || '</textarea></p>');
select 'QS_' || i.question_key into ans_var2 from dual;
end if;
id_holder := i.ans_id;
htp.p(
APEX_ITEM.SELECT_LIST_FROM_QUERY_XL(
p_idx => 1,
p_value => NULL,
p_query => 'select QUESTION from TBLRECORDS where contains(myindex, ''about(' ||i.question_key||')'', 1) >0',
p_attributes => 'style="width:250px;" onchange="myFunction(this.value, ans_var2);"',
p_show_null => 'YES',
p_null_value => '%NULL%',
p_null_text => '',
p_item_id => id_holder,
p_item_label => NULL,
p_show_extra => 'YES')
);
sys.htp.prn(' </td>');
htp.p('<br /><br />');
sys.htp.prn('</tr>');
end loop;
sys.htp.prn('</tbody>');
sys.htp.prn('</table>');
end;
--***Ajax Callback***
declare
l_emprow TBLRECORDS%ROWTYPE;
begin
select * into l_emprow
from TBLRECORDS
where QUESTION = apex_application.g_x01;
htp.p(
'ANSWER:'||l_emprow.ANSWER);
end;
请告知是否有人可以协助。我在试图通过on change call将目标字段传递到随需应变流程时遇到类型错误。这个障碍对我来说是巨大的,因为我对随需应变流程还不熟悉,我很欣赏任何智慧。谢谢