我在Oracle软件包中工作。我试图使用AJAX调用从按钮单击调用过程。 ajax调用在函数内部。我没有从Oracle获得任何语法错误,或者当我使用浏览器调试模式时,我不确定问题是什么。功能如下。
htp.p('
function ApplyTest(_ht) {
var _inst = "";
var _pidm = '||v_web_pidm||';
var _inst = document.getElementById("Test").value;
alert("Heat Ticket value is: " + _ht);
alert("the instance is: " + _inst);
var resp = confirm("Are you sure you want patch applied to TEST8?");
if (resp == true) {
alert ("user pidm is: " + _pidm);
return $.ajax ({
type: "POST",
cache: false,
dataType: "json",
url: "gyapatch.p_update",
data: {"v_instance" : _inst, "v_ht" : _ht},
success : function(data) { alert("success"); }
});
alert("Got here");
alert("value: " + _inst);
window.location.reload;
alert("got to the end");
} else {
return;
}
}
');
按钮的代码是:
<button name="TestApply" id = "Test" onclick="ApplyTest('||val_patch.heat_ticket||')" type="button" value="T">Apply to TEST8</button>'
当我尝试返回ajax时,没有任何事情发生,我甚至无法到达&#34; Got Here&#34;警报。当我删除&#34;返回&#34;关键字,我可以达到警报但无论如何,什么也没发生。 GYAPATCH.p_update是我希望在运行时执行的包/过程
我不确定问题是什么。任何有关这方面的帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
所以几个小时后,我发现了问题。这更像是一个学习课程,因为问题非常简单。我需要记住,我在Oracle数据库内部工作,并且还使用WebTailor。上面发布的代码是正确的。事实证明,我试图调用的程序(p_update)没有注册。
WebTailor允许您使用Banner构建Web应用程序。在WebTailor中,任何使用的页面(通常源自package.procedure)都需要注册,否则无法识别。
我在调试时发现了这个。在我的调试器的“网络”选项卡下,我注意到当我单击我的按钮时,调用package.procedure时出现404错误。所以我意识到它无法找到我的包裹,然后继续检查它是否已注册。这对我来说是一个简单而愚蠢的错误。我很感激您的反馈意见,但这可能会成为学习课程或提醒任何试图在使用Banner数据时使用ajax的人。