读书人

jquery ajax返回值的有关问题

发布时间: 2012-12-17 09:31:40 作者: rapoo

jquery ajax返回值的问题
我在action里返回了一个list的json对象,jquery ajax接收,然后不知道该如何把这个list显示到jsp页面

我的action是 JSONObject jsonObject = new JSONObject();
int typeBack = blackListBiz.insertType(form);
jsonObject.put("result", typeBack);
jsonObject.put("blackltype", blackListBiz.findType());//里面是个list
ResultParameters.setJson(jsonObject);
return ResultConstants.JSON;

js是 $.post("insertType",$("#form1").serialize(),function(data){
if(data.result==0){
alert("该类型已存在!");
}else{
//这里不知道该怎么写......
alert(data.blackltype);
}
});
jsp页面是 <table class="data_table">
<tr class="head_tr">
<td>黑名单类型ID</td>
<td>黑名单类型</td>
<td colspan="2">操作</td>
</tr>
<s:iterator value="#request.blackltype" var="s" status="st">
<tr <s:if test="#st.even and !#st.last">class="even"</s:if><s:elseif test="#st.even and #st.last">class="even last"</s:elseif><s:elseif test="#st.last">class="last"</s:elseif>>
<td align="center">${s.ID }</td>
<td align="center">${s.BLACK_TYPE }</td>
<td align="center"><a href="edit?id=${s.ID }">修改</a></td>
<td align="center" ><a href="deleteType?id=${s.ID }" onclick="return confirm('确认删除?')">删除</a></td>
</tr>
</s:iterator>
</table>
[最优解释]

引用:
引用:用你data重写个table是这个意思么??


JavaScript code?



12345678

var list = data.blackltype; var html = ""; if(list.length) { for(var i=0; i<list.length……


可是ajax不刷新页面的啊。。。
<s:iterator value="#request.blackltype" var="s" status="st">这些代码在jsp编译的时候已经编译成html了,还怎么赋值呢?js是静态的~~标签是动态的东西

[其他解释]
你先获取页面上的对象,然后再遍历你从后台传过来的数据,把值赋给对象就好了
[其他解释]
页面上的哪个对象??
[其他解释]
引用:
你先获取页面上的对象,然后再遍历你从后台传过来的数据,把值赋给对象就好了


楼上说的挺好
[其他解释]
挺好归挺好,就是不明白具体怎么写代码撒,能具体点不
[其他解释]
你的值要显示要哪个控件上你就获取哪个对象啊
[其他解释]
引用:
你的值要显示要哪个控件上你就获取哪个对象啊


等于没说,我是要把list给返回到页面啊,js代码,jsp代码都在上面了,能直接点告诉我要取哪个对象不,然后怎么给他循环塞值
[其他解释]
你页面上要怎么显示我怎么知道!真是的,你传回来的list我也不知道是些什么值,我怎么告诉你要获取哪个对象啊!
[其他解释]


var obj = $.parseJSON(json);
var list = obj.你传的list;
for ( var i = 0; i < list .length; i++) {
取出list的值 赋值给控件
}
[其他解释]
用你data重写个table是这个意思么??


var list = data.blackltype;
var html = "";
if(list.length) {
for(var i=0; i<list.length; i++)
html = "<tr><td>" + list.id + "</td></tr>";
}
$(".data_table").html(html);

[其他解释]

success: function(data,status){
var historyList = eval(data);
for(i=0;i<historyList.length;i++){
var html = '<tr><td>';
html = html + historyList[i].premiumName+"</td><td>";
html = html + historyList[i].cycle+"</td><td>";
html = html + historyList[i].createDate+"</td><td>";
if(historyList[i].orderSource==1){
html = html+"购买"+"</td><td class='alignle'>";
}else if(historyList[i].orderSource==2){
html = html+"赠送"+"</td><td class='alignle'>";
}
html = html + historyList[i].dateStart+"-<br />";
html = html + historyList[i].dateEnd+"</td><td>";
html = html + historyList[i].orderNo+"</td></tr>";
$("#table"+name).append(html);
arrayflagName.push(name);
document.getElementById(name).style.display="block";
}


},


[其他解释]
引用:
用你data重写个table是这个意思么??


JavaScript code?



12345678

var list = data.blackltype; var html = ""; if(list.length) { for(var i=0; i<list.length; i++) html = "<tr><td>" + ……


对的,就是这个意思,但我不想重写table,你看我的jsp页面本来显示list的方式是<s:iterator value="#request.blackltype" var="s" status="st">
出来的,我就想能不能把ajax回调的data.blackltype直接赋给上面的这个value="#request.blackltype"里,这样不就可以直接显示了吗,就是不知道怎么赋给request
[其他解释]
楼主是说遍历js里的后台传递过来的List对象吗?


$.each(data.blackltype, function(i) {
alert(data.blackltype[i].属性);
});


或者

 $.each(data.blackltype, function(key, val) {
alert(val.属性);
});


试试、
[其他解释]
引用:
引用:引用:用你data重写个table是这个意思么??

谢谢,我想我有点明白了

读书人网 >Java Web开发

热点推荐