Jquery oracles更新数据库后的ajax加载

Jquery oracles更新数据库后的ajax加载,jquery,oracle,coldfusion,Jquery,Oracle,Coldfusion,我有一个显示“项”属性的表单。用户可以选择将文件/附件上载到此“项目”。当前,在类为“testing”的div中,显示项目的现有附件。用户使用“附加”按钮将文件附加到要更新的项目。在使用“更新”按钮点击事件提交表单之前(这正是我想要的),文件永远不会实际附加。表单提交是对iframe的ajax提交。我想使用jquery将包含用于查找当前附加项的查询的coldfusion页面加载到我的“testing”div中。我最初的方法是在表单提交后使用jquery的加载函数: //In the JS fil

我有一个显示“项”属性的表单。用户可以选择将文件/附件上载到此“项目”。当前,在类为“testing”的div中,显示项目的现有附件。用户使用“附加”按钮将文件附加到要更新的项目。在使用“更新”按钮点击事件提交表单之前(这正是我想要的),文件永远不会实际附加。表单提交是对iframe的ajax提交。我想使用jquery将包含用于查找当前附加项的查询的coldfusion页面加载到我的“testing”div中。我最初的方法是在表单提交后使用jquery的加载函数:

//In the JS file, the selected item is used in the CF query
form.submit();
$('.testing').load('itemAttachments.cfm?itemID=' + selectedItem);
我知道我的coldufusion查询是有效的,因为它是“testing”div中的一个cfinclude,页面最初加载的是正确的信息。在表单提交上,jquery加载返回cf页面,但包含相同的数据,而不是列出的新附件。刷新页面时,数据将正确显示(即列出新附件)。这让我相信一切正常,但jquery负载是在Oracle处理查询之前发生的

这是正确的吗?如果是,我如何解决这个问题?谢谢

编辑
表单提交到具有隐藏iframe的目标。问题是表单提交和jquery.load()都使用相同的页面itemAttachments。但是jquery load()在表单提交之前首先得到结果,即使.load在代码中表单提交之后。

使用iframe的这个技巧会给你2个并行请求,也许.load会赢得比赛。 如果您已经在使用jquery,我建议您也应该使用jquery进行post并执行load(甚至只使用ajax响应)

如果出于某种原因必须使用iframe hack,则需要将事件附加到iframe。 例如,您可以在iframe重新加载时启动它:

$('#iframe').load(function(evt){
  //do some checks
  $('.testing').load('itemAttachments.cfm?itemID=' + selectedItem);
});

使用iframe的这个技巧会给你2个并行请求,也许.load会赢得比赛。 如果您已经在使用jquery,我建议您也应该使用jquery进行post并执行load(甚至只使用ajax响应)

如果出于某种原因必须使用iframe hack,则需要将事件附加到iframe。 例如,您可以在iframe重新加载时启动它:

$('#iframe').load(function(evt){
  //do some checks
  $('.testing').load('itemAttachments.cfm?itemID=' + selectedItem);
});

我将jquery加载的脚本添加到coldfusion处理页面。我给它一个window.parent.document的范围,即:

<SCRIPT LANGUAGE="JAVASCRIPT">
    $(document).ready(function(){
        $('.testing', window.parent.document).load('processForm.cfm?itemID=' + <cfoutput>#itemID#</cfoutput);
    });
</SCRIPT>

$(文档).ready(函数(){

$('.testing',window.parent.document).load('processForm.cfm?itemID='+#itemID#我将jquery加载的脚本添加到coldfusion处理页面。我给它一个window.parent.document的范围,即:

<SCRIPT LANGUAGE="JAVASCRIPT">
    $(document).ready(function(){
        $('.testing', window.parent.document).load('processForm.cfm?itemID=' + <cfoutput>#itemID#</cfoutput);
    });
</SCRIPT>

$(文档).ready(函数(){

$('.testing',window.parent.document).load('processForm.cfm?itemID='+#itemID#检查firebug或chrome开发者工具是否有任何错误。@DG3不幸的是,我仅限于IE8。我认为您可以将它们用于调试目的。对于IE8,fiddler可能会有所帮助。我认为您的结论可能不正确。CF页面在完成查询之前不会返回。submit()不是触发一个全新的页面加载?可能在AJAX调用完成之前触发。@eaolson表单提交给一个带有隐藏iframe的目标。问题是表单提交和jquery.load()都使用相同的页面itemAttachments。但是jquery load()是在表单提交之前先获取结果,即使在代码中表单提交之后才加载。请检查firebug或chrome developer工具是否有任何错误。@DG3不幸的是,我仅限于IE8。我认为您可以仅出于调试目的使用它们。对于IE8,fiddler可能会有所帮助。我不认为您的结论是正确的。CF页面在完成查询之前不会返回。submit()是否会触发一个全新的页面加载?这可能会在AJAX调用完成之前触发。@eaolson表单提交给一个带有隐藏iframe的目标。问题是表单submit和jquery.load()都使用相同的页面itemAttachments。但是jquery load()是是在表单提交之前首先获取结果,即使在代码中.load在表单提交之后。iframe是空的/隐藏的;我仅将其用于表单提交的目标。这就是我使用表单.submit()的原因在我的js中,我不确定在提交这样的表单时有没有一种方法可以使用回调功能。或者有吗?为什么你需要这个表单提交,当你可以使用ajax提交?或者jquery插件,如果你想将它用于文件的话。在提交文件的同时,你可以提交任何其他数据,并从服务器获得相同数据的响应,你得到的是
$('.testing').load('itemAttachments.cfm?itemID='+selectedItem);
iframe是空的/隐藏的;我仅将其用于表单提交的目标。这就是我使用表单.submit()的原因在我的js中,我不确定在提交这样的表单时有没有一种方法可以使用回调功能。或者有吗?为什么你需要这个表单提交,当你可以使用ajax提交?或者jquery插件,如果你想将它用于文件的话。在提交文件的同时,你可以提交任何其他数据,并从服务器获得相同数据的响应,你得到的是
$('.testing').load('itemAttachments.cfm?itemID='+selectedItem);