oracle apex ajax process + dy 校验
目前apex的后端校验,即用户输入后,点击提交才触发与后端服务器的校验,为了提升用户体验,可以把这一步前置,用js事件触发后端校验,以监测用户名是否重复为例。
演示环境为 apex 20.2
建立Ajax process
DECLAREl_count NUMBER := 0;
BEGIN--名称重复校验IF :P5_1 IS NOT NULL THENSELECT COUNT(1)INTO l_countFROM 666 vWHERE v.1 = :P5_1AND ROWNUM = 1;IF l_count > 0 THENhtp.p('客户:' || :P5_1 || '已存在');ELSEhtp.p('success');END IF;END IF;--号重复校验IF :P5_2 IS NOT NULL THENSELECT COUNT(1)INTO l_countFROM 666 vWHERE v.2 = :P5_2AND ROWNUM = 1;IF l_count > 0 THENhtp.p('已存号为:' || :P5_2|| '的客户!');ELSEhtp.p('success');END IF;END IF;END;
先在process直接建立proce,然后位置选择 ajax,注意pl/sql要有返回值,后面的js需要根据返回值进行判断。
注意:htp.p打印的后面会有一个空格或者制表符,js判断时需要考虑进行字符串去空格操作。或者这个地方直接打印json也可以(参加文末勘误)
在对应的表单页项上建立动态操作
js事件选择 改变(onchange) 或者 失去焦点 (onblur),真操作为执行js代码
apex.server.process('ajax_validate_customer_repeat',//这儿的名称为process的名称{pageItems: '#P5_PARTY_NAME'//注意带#号},{dataType: 'text', success: function (data) {if ( /*data*/ data.trim() != 'success') {//用htp.p打印的后面带一个空格,不知道为啥,此处要注意,也可以用apex封装的api直接打印jsonapex.message.clearErrors();apex.message.showErrors([{type: "error",location: ["page", "inline"],pageItem: "P5_PARTY_NAME",message: data,unsafe: false}/*,{type: "error",location: "page",message: data,unsafe: false}*/]);}else {apex.message.clearErrors();}}}
)
效果如下
后续改进
可以把重复校验的单独封装成一个js函数
function repeat_validate(page_item_name) {apex.server.process('ajax_validate_customer_repeat',{pageItems: "#" + page_item_name},{dataType: 'text', success: function (data) {if ( /*data*/ data.trim() != 'success') {apex.message.clearErrors();apex.message.showErrors([{type: "error",location: ["page", "inline"],pageItem: page_item_name,message: data,unsafe: false}]);}else {apex.message.clearErrors();}}})
}
把上面这段js放到 页》JavaScript 》函数和全局变量声明 里面去。
然后在要验证的表单项上 高级》定制: οnchange=“repeat_validate(‘P5_XXX’);”
这样就实现了公用,不必再在此页项上定义动态操作了。
参考文档:
https://apex.oracle.com/pls/apex/germancommunities/apexcommunity/tipp/3341/index-en.html
https://www.foxinfotech.in/2020/04/oracle-apex-validation-without-submit-using-javascript-and-ajax-callback.html
json
不用动态操作实现
勘误
htp.p 、htp.print 、htp.prn 三者是有区别的:
HTP.p is a shortcut (undocumented) to htp.print. HTP. Print adds a new line to the output.
HTP. PRN does not add a line break.
htp.p和htp.print 会在后面自动多一个/n 新行
hpt.prn不会多/n
https://docs.oracle.com/database/121/ARPLS/w_htp.htm#ARPLS70586
oracle apex ajax process + dy 校验相关推荐
- Oracle APEX 系列文章7:Oracle APEX 18.1 新特性
引言 千呼万唤始出来, Oracle APEX 18.1 新版本终于发布了,还不了解 Oracle APEX 是什么的同学请移步这里: Oracle APEX 系列文章1:Oracle APEX, 让 ...
- Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技
本文是钢哥的Oracle APEX系列文章中的第一篇,完整 Oracle APEX 系列文章如下: - Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技 - ...
- oracle apex global,Oracle Apex 实用笔记系列 1 - Oracle Apex 调试技巧
1. 理解Oracle Apex Url语法 一个Oracle Apex Url例子看上去像下面: http://myhost.mycompany.com/myservice/f?p=1023:1:2 ...
- Oracle APEX初体验
Oracle APEX是一个低代码开发平台.在主页中的介绍如下: Oracle APEX 是 Oracle 数据库完全支持的一项免费功能.这意味着,如果您拥有 Oracle 数据库,那么也就拥有了 O ...
- oracle apex 日志,Oracle Apex 调试技巧
转自:https://blog.csdn.net/kswaking/article/details/40819125 先转载记录,定制信息调试和PL/SQL函数调用,后续再研究. 原文: 1. 理解O ...
- oracle apex 日志,Oracle Apex 实用笔记系列 1 - Oracle Apex 调试技巧
1. 理解Oracle Apex Url语法 一个Oracle Apex Url例子看上去像下面: http://myhost.mycompany.com/myservice/f?p=1023:1:2 ...
- Oracle APEX 系列文章2:在阿里云上打造属于你自己的APEX完整开发环境 (准备工作)...
本文是钢哥的Oracle APEX系列文章中的第二篇,完整 Oracle APEX 系列文章如下: Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技 Oracle ...
- oracle 后台进程(background process)详解
查看已运行background process $ps -ef | grep ora SQL> select name,description from v$bgprocess where pa ...
- 【快讯】呼伦贝尔市人民医院利用Oracle APEX快速开发预检分诊系统
疫情期间,实施入口管控.患者分流.防止院内交叉传染是医院防控工作的重中之重. 内蒙古呼伦贝尔市人民医院信息科主任张布林借助Oracle APEX敏捷开发工具,仅用三天时间,为医院开发并上线了" ...
最新文章
- 网站实现个人支付宝即时到帐POST页面
- qt 提高图片加载速度
- Python 【好看视频】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
- centos配置oracle自启,centos 下配置oracle11gR2开机自启
- [WPF]程序随系统自启动
- 锁定 ASP.NET 配置设定
- 关于机器学习的最佳科普文章:《从机器学习谈起》
- 【janio】janio ClassBodyEvaluator 的使用
- Eclipse中使用Gradle构建Java Web项目
- 软考软件设计师下午真题-面向对象的程序设计与实现-装饰设计模式(2012年上半年试题六))Java代码讲解
- php集成paypal接口,PayPal接口集成之:PHP集成PayPal标准支付接口
- oracle备份数据exp,oracle数据库备份之exp增量备份
- python的就业方向有哪些城市_【行业分析|听说你选择python后就业迷茫?Python就业方向都有哪些】- 环球网校...
- Java项目-黄金矿工
- matlab中taylor公式源代码,matlab实现两步taylor-galerkin算法
- 有关ddos详解及软件和方式
- 【数据结构】二叉树遍历
- github实用的搜索小技巧
- 图论:图的四种最短路径算法
- Excel将其他单元格的数据合并成一个单元格
热门文章
- Android12 ---- Material You 应用
- 计算机基础和photoshop的应用,一级计算机基础与Photoshop应用真题
- 【DataWhale学习】Day10~13-4章决策树——西瓜书学习摘录笔记
- 世界经典电影Top 50
- 怎样把旧电脑数据迁移到新电脑
- “讯飞杯”合肥市第三十届青少年信息学奥林匹克竞赛(小学组)试题
- 【ubuntu】Ubuntu系统下安装石墨文档
- sklearn.neighbors 最近邻相关算法,最近邻分类和回归
- CUDA计算能力的含义和计算能力表格
- DedeCMS织梦教程:菜鸟级基础问题解决方法大汇总