ajax调用在ofbiz中单击复选框时执行操作
我想使用带有选项id1、id2的复选框。当我选择id1时,ajax将运行javascript并调用相应的操作并返回响应。我不想重新加载页面。请发布一些freemarker、controller.xml和java代码来执行此操作。基于我对问题的理解,以下脚本可能对您有所帮助: 在ftl文件本身/单独的js文件中添加以下脚本:ajax调用在ofbiz中单击复选框时执行操作,ajax,jquery,ofbiz,Ajax,Jquery,Ofbiz,我想使用带有选项id1、id2的复选框。当我选择id1时,ajax将运行javascript并调用相应的操作并返回响应。我不想重新加载页面。请发布一些freemarker、controller.xml和java代码来执行此操作。基于我对问题的理解,以下脚本可能对您有所帮助: 在ftl文件本身/单独的js文件中添加以下脚本: <script type="text/javascript"> jQuery(document).ready(function(){ jQue
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#id1").click(function(){
if(jQuery(this).is(":checked")) {
var reqUrl= "checkbox1_Url";
sendAjaxRequest(reqUrl);
}
});
jQuery("#id2").click(function(){
if(jQuery(this).is(":checked")) {
var reqUrl= "checkbox2_Url";
sendAjaxRequest(reqUrl);
}
});
});
function sendAjaxRequest(reqUrl){
jQuery.ajax({
url : reqUrl,
type : 'POST',
data : {'var1': 'val1', 'var2' : 'val2'}, //here you can pass the parameters to
//the request if any.
success : function(data){
//You handle the response here like displaying in required div etc.
},
error : function(errorData){
alert("Some error occurred while processing the request");
}
});
}
</script>
jQuery(文档).ready(函数(){
jQuery(“#id1”)。单击(函数(){
if(jQuery(this).is(“:checked”)){
var reqUrl=“checkbox1_Url”;
sendAjaxRequest(请求URL);
}
});
jQuery(“#id2”)。单击(函数(){
if(jQuery(this).is(“:checked”)){
var reqUrl=“checkbox2_Url”;
sendAjaxRequest(请求URL);
}
});
});
函数sendAjaxRequest(请求URL){
jQuery.ajax({
url:reqUrl,
键入:“POST”,
数据:{'var1':'val1','var2':'val2'},//在这里可以将参数传递给
//如果有请求,请通知我。
成功:功能(数据){
//您可以在这里处理响应,如在required div中显示等。
},
错误:函数(errorData){
警报(“处理请求时发生错误”);
}
});
}
在freemarker中
<input type="checkbox" id="id1" name="checkbox1" />
<input type="checkbox" id="id2" name="checkbox2" />
在controller.xml中:
<request uri="checkbox1_Url">
<!-- fire if any events are here -->
<response name="success" type="view" value="ViewName1" />
<response name="error" type="view" value="errorViewName" />
</request>
<request uri="checkbox2_Url">
<!-- fire if any events are here -->
<response name="success" type="view" value="ViewName2" />
<response name="error" type="view" value="errorViewName" />
</request>
<view-map name="ViewName1" type="screen" page="component://.../widget/screensFileName#screenName"/>
<view-map name="ViewName2" type="screen" page="component://.../widget/screensFileName#screenName"/>
<request uri="categoryurl">
<!-- fire if any events are here -->
<response name="success" type="view" value="ViewName" />
<response name="error" type="view" value="errorViewName" />
</request>
<view-map name="ViewName" type="screen" page="component://.../widget/screensFileName#screenName"/>
您可以按照上述路径(view map tag的page=“…”属性)中的指定在小部件中定义两个屏幕。
YandaMuri
切坦·巴加特
在Controller.xml中:
<request uri="checkbox1_Url">
<!-- fire if any events are here -->
<response name="success" type="view" value="ViewName1" />
<response name="error" type="view" value="errorViewName" />
</request>
<request uri="checkbox2_Url">
<!-- fire if any events are here -->
<response name="success" type="view" value="ViewName2" />
<response name="error" type="view" value="errorViewName" />
</request>
<view-map name="ViewName1" type="screen" page="component://.../widget/screensFileName#screenName"/>
<view-map name="ViewName2" type="screen" page="component://.../widget/screensFileName#screenName"/>
<request uri="categoryurl">
<!-- fire if any events are here -->
<response name="success" type="view" value="ViewName" />
<response name="error" type="view" value="errorViewName" />
</request>
<view-map name="ViewName" type="screen" page="component://.../widget/screensFileName#screenName"/>
在viw地图标签的上页属性中指定的适当位置/路径中定义屏幕。
在这里,屏幕可能没有decorator,因此响应将没有decorator,因此您可以在当前页面中显示它们,而无需重新加载。整页
我想这可能会对您有所帮助。您的意思是,您需要根据复选框的值更改actionUrl吗?例如:像“书籍”类别中的“yandamuri”书籍。你能提供更多的信息吗?如果我选择一个品牌,该品牌下的产品将出现在页面中,同样,如果我选择价格,则与价格匹配的产品将出现在同一页面中。它就像flipkart、myntra……等等的过滤器。你能发送一些测试源吗。我试过这种方法,但没有得到任何结果。请给出java源代码