第三十八章 构建数据库应用程序 - 处理表单提交请求
2023-09-11 14:15:37 时间
第三十八章 构建数据库应用程序 - 处理表单提交请求
除了在表单中显示对象的内容外,前面的示例还在用户通过单击Save
提交表单时保存对对象的更改。
它的工作原理如下。
当表单被提交时,控件的值(包括启动提交的按钮)被发送回服务器。
在本例中,表单被提交到最初为页面提供服务的同一CSP
页面。
通过设置表单ACTION
属性的值,可以提交到不同的页面。
CSP
服务器将提交的值放在%request
对象数据属性中。页面开始处的服务器端脚本通过测试是否定义了请求参数Save
(submit
按钮的名称),来测试页面是否响应提交请求。这只能定义为提交请求的结果。如果这是一个提交请求,则脚本将从表单提交的值复制到对象的适当属性中,并调用对象:
If ($Data(%request.Data("SAVE",1))) {
// If "SUBMIT" is defined, then this is a submit
// Write the posted data into the object and save it
Set person.Name = $Get(%request.Data("Name",1))
Set person.SSN = $Get(%request.Data("SSN",1))
Set person.Home.City = $Get(%request.Data("City",1))
Do person.%Save()
}
csp:object tag
前面例子中的一些行为是由<csp:object>
标签自动提供的。<csp:object>
标记生成创建或打开在csp
页面上使用的对象实例所需的服务器端代码,以及关闭它的代码。
<csp:object NAME="person" CLASSNAME="Sample.Person" OBJID="1">
<!-- Now use the object -->
Name: #(person.Name)# <br>
Home Address: #(person.Home.Street)#, #(person.Home.City)# <br>
在这种情况下,<csp:object>
标记打开CLASSNAME
类的对象,对象ID
为1
,并将它赋给变量person
。在实际应用中,对象ID
由%request
对象提供:
<csp:object NAME="person" CLASSNAME="Sample.Person"
OBJID='#($Get(%request.Data("PersonID",1)))#'>
Name: #(person.Name)# <br>
Home Address: #(person.Home.Street)#, #(person.Home.City)# <br>
表达式为:
$Get(%request.Data("PersonID",1))
引用URL参数PersonID
。
带有空OBJID
属性的< csp:object >
标记创建一个指定类的新对象:
<csp:object NAME="person" CLASSNAME="Sample.Person" ObjID="">
使用<csp:object>
标记相当于包含显式创建对象实例的服务器端脚本。
相关文章
- 使用ADO.NET访问数据库
- Servlet实现对SQLServer数据库的增删改查(含工程源码)
- Django根据现有数据库建立/更新model
- 大数据时代的数据存储,非关系型数据库MongoDB
- 开源数据库PostgreSQL攻克并行计算难题
- EasyDSS流媒体服务器软件对数据库Sqlite3和MySQL的同时支持说明
- Navicat工具获取操作数据库和表的SQL语句
- 除了Navicat和DBeaver,还有没有免费又好用的数据库管理/SQL工具推荐
- C# VS2010中,用微软自带的System.Data.OracleClient来连接Oracle数据库
- 数据库表CRMD_ORDERADM_I里字段OBJECT_TYPE的计算逻辑
- Atitit 数据库重复数据产生原因与解决总结 目录 1. 原因1 1.1. 缺少数据约束校验1 1.2. 表关系关联设计错误1 2. 约束种类1 2.1. 分类 表级约束vs列级别约束2
- 成功解决:连接sql server时插入数据库内容为乱码,并且输出也为乱码
- MySQL 数据库实现远程连接
- PostgreSQL的学习心得和知识总结(一百一十五)|词法级自上而下完美实现MySQL数据库的 反引号 的实现方案
- PostgreSQL的学习心得和知识总结(四十四)|语法级自上而下完美实现Oracle数据库DECODE函数的实现方案(GreenPlum & AntDB)
- 【数据库管理】⑩数据字典
- Linux中19个MySQL数据库管理命令