ajax动态加载数据总结(2012.11.20)
2012-11-20 17:46
302 查看
当id为softId的选择下拉框选项改变时即调用getTypes()方法,getTypes得到后台action得到的json字符串并动态输出到前台
--》addUpdateSchedule.jsp:
<script type="text/javascript">
$("#softId").change(getTypes);
//Ajax
function getTypes(){
var obj = eval("document.all.softId");
var softId = obj.options[obj.selectedIndex].value;
if(softId != 0){
$.ajax({
async : false,
cache: true,
type: 'POST',
dataType : "json",
url: "gettypes_bysoftid", //请求的action路径
data: "softId=" + softId,
success:function(data){ //请求成功后处理函数。
setJSON = eval("("+data.result+")"); //把后台封装好的简单Json格式赋给对象
},
error:function(data){
alert("获取信息异常");
}
});
alert(setJSON.length);
var div = document.getElementById("typee");
for(var i=0;i<setJSON.length;i++){
var html = '<span><input type="checkbox" name="typee" value="'+setJSON[i].id+'">'
+setJSON[i].name+' </span>';
div.innerHTML += html;
}
}
}
</script>
<body>
...
<tr>
<td align="right">升级软件包:</td>
<td align="left">
<select id="softId" name="softId" >
<option value="0">请选择</option>
<s:iterator value="softwares" var="software">
<option value="${software.id }">${software.versionName }</option>
</s:iterator>
</select>
</td>
</tr>
<tr>
<td align="right">被升级的掌机类型:</td>
<td align="left" id="ttype" name="ttype">
<div id="typee"></div>
</td>
</tr>
...
</body>
JsonPluginAction.java
...
public class JsonPluginAction extends ActionSupport {
...
private String result;
private Integer softId; //选中的软件包Id
...
/**
* 获取掌机软件升级包对应升级的掌机信息(ajax)
* @return
*/
public String gettypes_bysoftid(){
List<TerminalType> types = new ArrayList<TerminalType>();
try {
types = ConnectEjb.fssRemote.findTerminalTypeBySoftwareId(ConnectEjb.actor, softId);
} catch (NoMethodAuthorityException e) {
System.out.println(e.getMessage());
} catch (NoObjectAuthorityException e) {
System.out.println(e.getMessage());
} catch (NoAvailableActorException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("未知错误");
}
// //过滤掉级联属性
// JsonConfig jsonConfig = new JsonConfig();
// jsonConfig .setExcludes( new String[]{ "id","name" } ) ;
// //将json格式转换成字符串、并赋值给result属性
JSONArray json = JSONArray.fromObject(types);
result = json.toString();
return SUCCESS;
}
...
struts.xml
...
<!-- json -->
<package name="ajax" namespace="/" extends="json-default">
<action name="*_*" class="com.keyman.fss.action.JsonPluginAction" method="{1}_{2}">
<result type="json"></result>
</action>
</package>
...
--》addUpdateSchedule.jsp:
<script type="text/javascript">
$("#softId").change(getTypes);
//Ajax
function getTypes(){
var obj = eval("document.all.softId");
var softId = obj.options[obj.selectedIndex].value;
if(softId != 0){
$.ajax({
async : false,
cache: true,
type: 'POST',
dataType : "json",
url: "gettypes_bysoftid", //请求的action路径
data: "softId=" + softId,
success:function(data){ //请求成功后处理函数。
setJSON = eval("("+data.result+")"); //把后台封装好的简单Json格式赋给对象
},
error:function(data){
alert("获取信息异常");
}
});
alert(setJSON.length);
var div = document.getElementById("typee");
for(var i=0;i<setJSON.length;i++){
var html = '<span><input type="checkbox" name="typee" value="'+setJSON[i].id+'">'
+setJSON[i].name+' </span>';
div.innerHTML += html;
}
}
}
</script>
<body>
...
<tr>
<td align="right">升级软件包:</td>
<td align="left">
<select id="softId" name="softId" >
<option value="0">请选择</option>
<s:iterator value="softwares" var="software">
<option value="${software.id }">${software.versionName }</option>
</s:iterator>
</select>
</td>
</tr>
<tr>
<td align="right">被升级的掌机类型:</td>
<td align="left" id="ttype" name="ttype">
<div id="typee"></div>
</td>
</tr>
...
</body>
JsonPluginAction.java
...
public class JsonPluginAction extends ActionSupport {
...
private String result;
private Integer softId; //选中的软件包Id
...
/**
* 获取掌机软件升级包对应升级的掌机信息(ajax)
* @return
*/
public String gettypes_bysoftid(){
List<TerminalType> types = new ArrayList<TerminalType>();
try {
types = ConnectEjb.fssRemote.findTerminalTypeBySoftwareId(ConnectEjb.actor, softId);
} catch (NoMethodAuthorityException e) {
System.out.println(e.getMessage());
} catch (NoObjectAuthorityException e) {
System.out.println(e.getMessage());
} catch (NoAvailableActorException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("未知错误");
}
// //过滤掉级联属性
// JsonConfig jsonConfig = new JsonConfig();
// jsonConfig .setExcludes( new String[]{ "id","name" } ) ;
// //将json格式转换成字符串、并赋值给result属性
JSONArray json = JSONArray.fromObject(types);
result = json.toString();
return SUCCESS;
}
...
struts.xml
...
<!-- json -->
<package name="ajax" namespace="/" extends="json-default">
<action name="*_*" class="com.keyman.fss.action.JsonPluginAction" method="{1}_{2}">
<result type="json"></result>
</action>
</package>
...
相关文章推荐
- extjs.4.1,4.2,结合 jquery 遮罩层,ajax 请求时 数据遮罩,动态加载 contral
- Ajax动态滚动加载数据
- 难点总结:Jquery动态加载数据库中的数据(解答人:郭哲 方式:讲述jquery原理及一些函数的使用方法,学会看帮助文档)
- echarts在.Net中使用实例(二) 使用ajax动态加载数据
- Echarts通过Ajax实现动态数据加载
- DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
- C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据)
- 获取动态加载ajax的数据
- Ajax动态滚动加载数据(第一版)
- MVC4中AJAX Html页面打开调用后台方法实现动态加载数据库中的数据
- JSTree--JSON--AJAX动态加载JSON数据
- Ajax动态滚动加载数据(第二版)
- 使用ajax从数据库动态加载下拉框(select)数据,可编辑下拉框。
- Ajax动态滚动加载数据
- AJAX和jQuery动态加载数据的实现方法
- AJAX 动态加载后台数据 绑定select的方法
- C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据)
- 动态的把数据显示在table中,点击某一行的删除按钮实现该行的删除(通过ajax实现页面的无刷新加载)
- 使用Ajax动态加载数据
- Ajax动态数据加载+video遮挡div问题解决