我想使用Ajax在OFBiz中执行操作而不刷新页面。任务将像过滤器一样。当我选择任何Checkbox时,它应该执行一些操作并在同一页面中显示结果。
我需要做的所有步骤是什么?
我很感激controller.xml的一些示例代码,javascript调用Ajax ..etc
感谢。
答案 0 :(得分:0)
您可以通过ajax在 ftl 中的事件中使用表单提交。这是来自ExampleCreateParty.ftl
:
$.ajax({
url: '<@ofbizUrl>addSecurityPermissionToSecurityGroup</@ofbizUrl>',
type: 'POST',
accepts: 'xml',
data: $("form#Permissions").serialize(),
success: function(e) { console.log(e);
var xmlDoc;
try {
xmlDoc = $.parseXML(e);
var error = $(xmlDoc).find("Message").find("Error").find("ErrorCode").text();
var errorMsg = $(xmlDoc).find("Message").find("Error").find("ErrorMessage").text();
if (error=='0'){alert(errorMsg);}
console.log(xmlDoc);
} catch (err) {
alert('Saved Successfully!');
}
},
error: function(e) { console.log(e); }
})
在响应名为addSecurityPermissionToSecurityGroup
的服务时,您可以在controller.xml
中指定响应,您可以在ajax调用本身的成功键中获取该响应。< / p>
答案 1 :(得分:0)
要查看完整的端到端示例,请查看this OFBiz页面
正如您在更改产品配置时所看到的那样,产品价格会使用Ajax调用进行更新。然后你可以自己找出包含javascript的freemarker文件和控制器进行计算并将其返回。