2013-03-18 62 views
0

我正在使用Oracle ApEx v4.1和动态操作,后者基本上调用一个javascript函数,后者又调用按需过程将数据保存到数据库。按需过程响应中的问题

只是有点背景,我使用jQuery来扫描每个元素的值,当用户按下“保存”按钮或“下一步”按钮,然后将按钮传递给这些元素进入上述按需过程。

我的问题是,它看起来像有时过程中缺​​少传入的数据,我不知道为什么,我认为也许在我的动态行动中,我正在执行ape.submit('SUBMIT')以及对按需过程的JavaScript函数调用。

我是否需要推迟其中的一个呼叫,因为目前我不确定它为什么有时和其他时间有效,但事实并非如此。

上如何布局的代码的任何想法,即

apex.submit('SUBMIT'); 
saveTheData(); <-- calls my ondemand process to save data to database 

感谢。

回答

2

首先,让我们回顾一下前面的问题:How to Store User Responses on the Fly Temporarily for Later Use
你到底在做什么?这似乎是非常不必要的!
有什么理由收集jQuery中的项目值,并在您提交页面时将它们提交到会话状态?
当您使用next/prev/appy按钮并且页面提交时,项目的值处于会话状态,您可以在进程中使用它们。
您正在使用apex.submit提交页面。这将提交页面,并将所有项目的值设置为会话状态。你执行你的javascript函数,它会调用一个按需过程,为过程提供值。这些值是页面项值,因此您实际上只是在按需过程中设置会话状态。 它诚实地看起来像你有一个真正的古怪的设计正在进行!

至于为什么它有时会起作用,有时它不会: apex.submit将提交页面。就像,马上。如果您需要在处理页面之前执行的代码,请在提交之前执行。
请注意,如果您要切换这些行,它可能仍然不起作用,具体取决于您如何调用ondemand进程(异步或同步),以及是否需要成功函数来执行某些操作。当调用是异步的,那么可能是你的成功功能在提交完成之前没有处理。