Jquery 如何在Oracle ApEx表单中维护状态

Jquery 如何在Oracle ApEx表单中维护状态,jquery,cookies,oracle10g,session-state,oracle-apex,Jquery,Cookies,Oracle10g,Session State,Oracle Apex,我遇到了一个难题,我不确定使用Oracle ApEx解决此问题的最佳方法是什么 基本上,我有一个基于表1的表单,但同时,该表单中的一个部分/区域分支到另一个页面,然后将详细信息添加到表2中 为了通过一个更好的示例对此进行扩展,假设我有一个名为CUSTOMER的表,其中包含客户的个人详细信息,例如CUST_ID、FIRSTNAME、姓氏、DOB,然后我还有另一个名为PURCHASES的表,其中包含以下列,PURCHASE_ID、CUST_ID、ITEM、ITEM_DESCR,CUST_ID为CUS

我遇到了一个难题,我不确定使用Oracle ApEx解决此问题的最佳方法是什么

基本上,我有一个基于表1的表单,但同时,该表单中的一个部分/区域分支到另一个页面,然后将详细信息添加到表2中

为了通过一个更好的示例对此进行扩展,假设我有一个名为CUSTOMER的表,其中包含客户的个人详细信息,例如CUST_ID、FIRSTNAME、姓氏、DOB,然后我还有另一个名为PURCHASES的表,其中包含以下列,PURCHASE_ID、CUST_ID、ITEM、ITEM_DESCR,CUST_ID为CUSTOMERS表外键的成本

我现在想创建一个基于表外客户的Oracle Apex表单,但在这个表单中,在用户提交表单并将表单提交到数据库之前,我还想允许用户通过某种方式添加客户在商店购买的所有商品。一旦用户输入了客户详细信息以及5条购买记录(以某种方式),所有记录都将提交并提交到客户和购买表的数据库中


有没有办法解决这种情况或其他可能的解决办法?

而不是将重定向到第2页以输入表2信息,您需要提交第1页和分支到第2页。这将保存第1页的会话状态。您还不希望将第1页数据更新到表1中,因此请确保执行插入/更新的过程未被此提交调用-例如,以保存按钮或其他任何按钮为条件

或者,像我的例子一样,在一个页面上完成所有操作。感兴趣的页面是第7页,您可以通过“创建”按钮访问该页面。第7页有一种主/详细表单,但我没有使用Apex向导构建它-我不确定您是否可以,但我倾向于在我的工作中不使用向导和表上内置表单工具,所以我不确定

这就是我在第7页所做的:

1) 创建了一个空白页

2) 添加了一个HTML区域“新客户”,并为姓氏添加了一个文本项,为DOB添加了一个日期项

3) 使用以下SQL创建报告区域“采购”:

select apex_item.text(1,'') item_desc
,      apex_item.text(2,'') cost
from   dual
connect by level <= 5
我让这个过程以提交按钮为条件。
apex_应用程序
包包含与表格形式列相对应的数组变量g_f01、g_f02等

6) 创建了一个分支,按下SUBMIT时返回到第6页


如您所见,如果您希望功能偏离Apex的页面和区域向导提供的“开箱即用”行为,您必须编写更复杂的代码。但是你想做的任何事情都可以通过这种方式来完成

谢谢你的回答。我遇到的问题是,我还没有在第一页上提交任何信息,因为我想在所有信息可用后保存/提交第一页。你能建议一个不同的方法吗?啊,我想我明白了-你正在丢失Table1信息?再次感谢Tony。我尝试了另一种方法,即使用第1页中的iframe,通过表格形式引用第2页。不确定是否有可能让父页面实际执行第1页的提交,同时也提交到数据库第2页表格数据。你知道如何完成这一点,还是我应该开始一个新的线程?谢谢。为什么不把两张表都放在第一页呢?我想您可以使用一些Javascript在iframe中提交第2页,但我不知道细节。不过听起来有些过头了。一个进程跨越一个以上的页面是很常见的——它通常被称为“向导”,Apex最肯定地支持它。Tony,不确定这将如何处理同一页面上的两个表,因为该设置基本上是一个主细节设置,但不幸的是,我并不特别喜欢Oracle Apex处理主细节设置的方式。我并不特别喜欢我所做的方式,但我仍然不确定是否有其他方式来进行此设置。为了进一步澄清,当您说“基于表外客户的表单”时,您是指用于创建一个客户的简单数据输入表单吗?是的,Tony,但在同一表单上,我希望具有某种类型的区域,以允许用户输入客户可能拥有的一个或多个购买,但我希望此信息始终显示在客户表单中的该区域内,然后用户使用捕获客户和购买表提交/提交一次。希望这是有意义的。看看-这是你想要的吗?第一页只是显示由第7页创建的数据(按Create按钮进入)。第7页是“你的”页。当您输入客户和一些购买信息后,按Submit。您应该看到您创建的新客户;点击他们的名字,购买的物品将显示在下面。如果这是你想要的,那么明天我可以看看我是如何做到的(我现在必须走了)。嘿,托尼-非常感谢你的帮助,并感谢你的例子。根据您的示例,我假设您在ApEx中使用了主详细信息设置-这是否正确?根据您的示例,我将如何编辑采购记录?如果您没有使用主细节设置,那么我真的很感激您使用了什么方法?再次感谢托尼。
declare
  l_cust_id integer;
begin
  -- Insert the new customer
  insert into so_customers (surname, dob)
  values (:p7_surname, :p7_dob)
  returning cust_id into l_cust_id;

  -- Insert the purchases (if data has been entered)
  for i in 1..apex_application.g_f01.count loop
    if apex_application.g_f01(i) is not null then
      insert into so_purchases (cust_id, item_desc, cost)
      values (l_cust_id, 
              apex_application.g_f01(i),
              apex_application.g_f02(i)
             );
    end if;
  end loop;
end;