gpt4 book ai didi

javascript - 如何在 Oracle Apex 5.1 中动态添加一个或多个文本框到一个区域?

转载 作者:行者123 更新时间:2023-11-30 20:36:29 24 4
gpt4 key购买 nike

我正在使用 Oracle Apex 5.1 创建示例应用程序。我正在尝试根据输入到字段中的数字创建新的文本框。到目前为止,这部剧的 Actor 有:

  • P11_TESTBOX:包含必要新框数量的文本框
  • 测试:按下时会触发必要的动态操作的按钮
  • 过程 TEST_THIS:PL/SQL 过程,当被按钮触发时,将运行并创建必要的框

目前所写的程序(只是想测试一下我是否可以在完全实现之前让它工作):

CREATE OR REPLACE PROCEDURE TEST_THIS (
HOW_MANY IN NUMBER)
IS
BEGIN
FOR I IN 1..HOW_MANY LOOP
HTP.P('<input class="dynamicBoxes" id="P11_BOX_' || I || '" type="text" value="" />');
HTP.P('<br/>');
END LOOP;
END;

像往常一样,我在测试上设置了一个动态操作:事件设置为“点击”,选择类型为“按钮”,按钮为“测试”,事件范围为“静态”。 True 操作是“执行 PL/SQL 代码”,这是对过程 HOW_MANY 的简单调用,将 :P11_TESTBOX 作为数字传递。我一直收到错误

Ajax call returned server error ORA-06502: PL/SQL: numeric or value error for Execute PL/SQL Code

我觉得我快疯了(老实说,这与事实相去不远),我添加了一个“执行 JavaScript 代码”功能:

alert(document.getElementById('P11_TESTBOX').value);

不出所料,输入框的数字被返回了。可悲的是,错误仍然出现。

为了确保我尝试了一切,我更改了 PL/SQL 过程的语法:

CREATE OR REPLACE PROCEDURE TEST_THIS (
HOW_MANY IN NUMBER)
IS
BEGIN
FOR I IN 1..HOW_MANY LOOP
HTP.P(
apex_item.text(
p_idx => 'P11_NEWBOX_0' || I,
p_Value => ''
)
);
END LOOP;
END;

结果:警报仍然给我号码;错误仍然存​​在。

尝试这两个版本的想法来自 this website .

只是为了先发制人,一旦我能够解决这个问题,我将需要获取输入到创建的文本框中的任何值并将它们插入到数据库中。我希望这就像使用创建的任何 ID 一样简单,但在这个问题之后我并不乐观。任何帮助将不胜感激。

最佳答案

您不需要编写 PL/SQL 过程。只需隐藏页面加载上的框,当触发动态操作显示它们的按钮时?所以你转到服务器端操作和 Item = Value 并在 DA 中设置它

关于javascript - 如何在 Oracle Apex 5.1 中动态添加一个或多个文本框到一个区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49787302/

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