gpt4 book ai didi

javascript - 如何从 javascript 执行 apex 进程

转载 作者:行者123 更新时间:2023-11-28 02:40:49 24 4
gpt4 key购买 nike

我对 javascript 和 apex 非常陌生,可以说我正在工作中学习。
让我首先描述我想要实现的目标:
我试图阻止功能键运行/执行浏览器功能(F1 调出帮助,F3 查找等)。我找到了阻止它们的 JavaScript 代码,但不知道之后该怎么做。
例如,当用户按 F1 时,它不应该显示帮助,而是在 apex 中执行进程。
例如,这样的过程可以是将顶点页面文本字段上的所有信息保存到数据库中。
我该怎么做?

查看我的示例代码:除了警报之外,我将如何执行一个流程以及如何编写这样的流程?

<小时/>
<script language="javascript">
function my_onkeydown_handler() {
switch (event.keyCode) {
case 112: // 'F1'
document.onhelp = function() {
return (false);
}
window.onhelp = function() {
return (false);
}
alert("F1");
NewEntry();
break;
}
}
</script>

最佳答案

$(document).keydown(function(e){
if(e.which===112){
console.log('F1ed');
//NewEntry();
return false;
};
});

这可以转换为动态操作(您没有指定 apex 版本。动态操作是在 4.0 版本中引入的)。你为什么要使用它们?它们非常方便,您可以使用它们轻松利用 javascript,而无需真正了解它,并且可以在页面结构中看到它们。这样,您就不需要在页面的多个部分中困惑地使用 javascript。即使对于没有预定义操作的更高级 JavaScript,您仍然可以使用“执行 Javascript”来放入自己的代码。再次强调可访问性和可维护性!利用它!

创建新的动态操作。

  • 事件:按下按键
  • 选择类型:DOM 对象
  • DOM 对象:文档
  • 条件:无

至于(真实) Action :

  • 操作:执行 Javascript 代码

代码:

var e = this.browserEvent;
switch (e.which) {
case 112: // 'F1'
alert("F1");
return false;
}

更好更干净。更好的是,您现在就可以适应它们了!也请阅读它们。

进入第二部分:

What i mean is that when eg F1 is pressed it must not display help but execute a process in apex for example I would like to save all information on the apex page text fields to the database. How would I go about it. See my little code, instead of the alert, how would I go about executing a process and how do I go about writing such a process?

这让我感到好奇(并且皱眉,但只是一点点)。您对 apex 有多熟悉?无意冒犯,但这是您所询问的相当基本的功能。

假设您有一个由向导生成的报告和表单页面。假设你没有像这个 javascript 这样奇怪的东西,而只是准系统。
您从报告转到表单页面。通过进程获取值并呈现页面。现在您更改一些值并提交页面。然后提交的值在页面处理中进行处理,并通过行处理过程,这将插入/更新/删除数据。

如果您不熟悉这个概念,我强烈建议您至少遵循 Oracle® Database 2 Day + Application Express Developer's Guide (Oracle Apex documentation)。许多开发人员只是一头扎进去,没有看一眼本指南。不。这篇简短的(实际上可能只有几个小时)指南将教您一些 apex 的基础知识!
诸如 session 状态和提交页面之类的重要事情对于理解它的作用至关重要。

现在,假设我们有一个表单页面,上面有这段 javascript。按F1更新值(阅读:按F1提交页面并调用行处理来处理提交的值),您可以使用apex javascript api's : apex.submit('APPLY') ( DOC ).
这将提交带有请求APPLY的页面。这个值很重要。请注意,按钮也会在提交时将其名称设置为请求值,并且行处理会根据有效请求值列表进行不同的处理。

var e = this.browserEvent;
switch (e.which) {
case 112: // 'F1'
alert("F1");
apex.submit('APPLY');
return false;
}
<小时/>

进一步阐述:还有 AJAX 回调。这些是服务器端的进程,可以通过对服务器的 javascript 调用来调用。这些过程是 PLSQL 代码,例如可用于将数据返回到调用 JavaScript 函数,并避免整页刷新/提交。
当然它也可以用来保存数据。数据必须传递到服务器,然后该过程会处理该数据。例如,当某个字段发生更改并且您希望立即将其保存到数据库但不希望提交整页时。回调将是一个对表执行更新的 plsql block 。

Ajax 回调非常有趣且有用,但我建议您在解决此问题之前先充分掌握基础知识!

关于javascript - 如何从 javascript 执行 apex 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12672197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com