ajax - 如何在 plsql 中发出 AJAX 请求
问题描述
我正在尝试从另一个类似于以下代码的存储过程调用存储过程:
create or replace procedure hello_world is
v_first_name VARCHAR2(30) := 'ABC';
v_LAST_name VARCHAR2(30) := 'XYZ';
BEGIN
htp.p('<HTML>');
htp.p('<HEAD>');
htp.p('<TITLE>Instructor Personal Info</TITLE>');
htp.p('</HEAD>');
htp.p('<BODY bgColor="#99CCCC">');
HTP.P('<input type="text" name = "TEXT" >');
HTP.P('<p id="demo"></p>');
htp.p('<script type="text/javascript">function myFunction() {/**Call the other stored procedure here passing the value from the the element "demo"**/');
htp.p('</script>');
HTP.P('<button type="button" onclick="myFunction()">Personal Info</button>');
HTP.p('<p>This example demonstrates how to assign an "onclick" event to a p element.</p>');
htp.p('<H1>Personal Info For '||v_first_name||' '||v_last_name||'</H1>');
htp.p('</BODY>');
htp.p('</HTML>');
END;
我想将元素“Demo”的值作为参数传递。
这可能吗?以及如何做到这一点?
解决方案
这是一个如何执行 AJAX 请求的示例。我无法测试它。如您所见,您需要使用http.open
过程名称更改值。
CREATE OR REPLACE PROCEDURE hello_world
IS
v_first_name VARCHAR2 (30) := 'ABC';
v_last_name VARCHAR2 (30) := 'XYZ';
BEGIN
HTP.p ('<HTML>');
HTP.p ('<HEAD>');
HTP.p ('<TITLE>Instructor Personal Info</TITLE>');
HTP.p ('</HEAD>');
HTP.p ('<BODY bgColor="#99CCCC">');
HTP.p ('<input type="text" name = "TEXT" >');
HTP.p ('<p id="demo"></p>');
HTP.p('<script type="text/javascript">function myFunction() {
var http;
var response;
var demo = document.getElementById("demo");
http = new XMLHttpRequest();
http.open("GET", "PROCEDURE_TO_CALL?param1="+ demo.value, false);
http.setRequestHeader("Cache-Control", "no-cache");
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200){
response = http.responseText;
}
}
http.send();
}');
HTP.p ('</script>');
HTP.p('<button type="button" onclick="myFunction()">Personal Info</button>');
HTP.p('<p>This example demonstrates how to assign an "onclick" event to a p element.</p>');
HTP.p( '<H1>Personal Info For '
|| v_first_name
|| ' '
|| v_last_name
|| '</H1>');
HTP.p ('</BODY>');
HTP.p ('</HTML>');
END;
推荐阅读
- vb.net - 如何检索 Symbol 移动设备的 OEM 名称?
- java - 对话框后刷新 Listview
- hadoop - java.lang.IllegalArgumentException:错误的文件系统
- markdown - Markdown 中的研究论文摘要段落
- reactjs - 如何修复仅第一个字符的错误
- azure - 从 azure 函数读取 blob 的内容
- macos - 是否有最小数量的 ram 来运行创建反应应用程序?
- swift - Swift hash(into:) Hashable 协议要求的缓存结果
- tcp - 如何通过 fiddler 或 mitmproxy 从桌面应用程序转发数据?
- javascript - 让 DataTables 不过滤某些行