从后台获取的数据呈现在页面上是这样的:
点击按钮事件之后:
$("按钮").click(function(){
$.ajax({
async:false
});
$("#msg").text(msg);
});
[{"LogID":250,"LogTypeID":0,"LogTitle":"娱乐","LogContent":"娱乐","LogDate":"2014/7/21 0:00:00","LogTypeName":"娱乐"},{"LogID":251,"LogTypeID":0,"LogTitle":"封面人物","LogContent":"时尚","LogDate":"2014/7/20 0:00:00","LogTypeName":"情感杂志"}, {"LogID":253,"LogTypeID":0,"LogTitle":"1","LogContent":"1","LogDate":"2111/1/1 0:00:00","LogTypeName":"娱乐"}]
但是我想要这样的效果怎么办?
<按钮>
编号 | 类型 | 标题 | 内容 | 时间 |
---|---|---|---|---|
250 | 0 | 娱乐 | 娱乐 | 2014/7/21 0:00:00 |
251 | 0 | 封面人物 | 时尚 | 2014/7/20 0:00:00 |
253 | 0 | 1 | 1 | 2111/1/1 0:00:00 |
<div id="msg"><div/>
var result = JSON.parse(msg);
for (var i = 0 ; i < result.length ; i++) {
alert(result[i].LogID + " " + result[i].LogTitle)
}
或者$.ajax的参数有一个属性是dataType,指定为json之后,回调函数的参数就是一个JSON.parse之后的对象
哦,好的, 谢谢了
是不是ajax方法设置dataType为json之后
数据就不用转啦?
@骑着蜗牛耍流氓: 对,设置dataType:"json"之后,就直接可以用了,比如:
$.ajax({
......
"dataType" : "json",
"success" : function(result){
for (var i = 0 ; i < result.length ; i++){alert(result[i].LogID);}
}
})
@琴剑飘零: 嗯,知道了谢啦
@琴剑飘零: 顺便问下:data:{xxx:xxx}里面参数怎么写呢,就按照刚才的例子怎么写?
@骑着蜗牛耍流氓: 你是说提交请求参数吗?
$.ajax({
......
"dataType" : "json",
"data" : {"username":"zhangsan", "password":"123456", "type":1},
"success" : function(result){
for (var i = 0 ; i < result.length ; i++){alert(result[i].LogID);}
}
})
是这个意思吗
@骑着蜗牛耍流氓: 当然key上的引号可以不加,也就是说,{username:"zhangsan"}也可以
@琴剑飘零: 哦,Key 是可以自己乱起的吗?比如我提交{aa:"admin"},是不是后台接收到的格式就是aa:"admin"
@琴剑飘零: 还是说data里面的key要和后台数据库的字段对应呢?
@骑着蜗牛耍流氓: 这个key是可以随便起,{aa:"admin"}就相当于提交http://xx.com?aa=admin,
不知道你服务端用的什么语言,java的话通过getParameter("aa")获取admin,php是通过$_GET['aa']或者$_POST['aa']来获取,要不要和数据表字段对应,这个没有要求,要看后台程序是怎么设计的了
@琴剑飘零: 噢,我用的是.NET 应该是Request["aa"]吧
@骑着蜗牛耍流氓: 看着函数样子像,我对.net不熟,记不清了~
@琴剑飘零: 哦,好的谢了
@骑着蜗牛耍流氓: 楼主!你的json数据传送,前端是不是用ajax传,服务器是java,用getInputStream()接受。可不可以把你的代码(包括用到的包)整理发一份我哈!谢谢!!!PS:邮箱:William_JM@163.com
function PageClick() {
$.ajax({
url: 'UserWorkStationList.aspx',
type: "GET",
data: {
OpType: "GetUserWorkStationList"
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
},
success: function (response) {
var htmlContent = "";
$(response.ResultValue).each(function (i) {}
htmlContent += "<td>" + this.属性+ "</td>";
});
}
是不是这么个意思
不行啊,这样写了以后 数据都没了,什么都没出来
$("#btn").click(function () {
var htmlobj = $.ajax({
url: '@Url.Action("GetList", "Test")',
async: false,
success: function (response) {
var htmlContent = "";
$(response.ResultValue).each(function (i) {
htmlContent += "<td>" + this.LogID + "</td>";
htmlContent += "<td>" + this.LogTypeID + "</td>";
htmlContent += "<td>" + this.LogTitle + "</td>";
htmlContent += "<td>" + this.LogContent + "</td>";
htmlContent += "<td>" + this.LogDate + "</td>";
});
$("#table_content").append(htmlContent);
}
});
});
不用转,直接设置dataType为Json,或者你后台返回的就是Json格式的,直接用就行了。
我后台返回的就是json的,但是我前端取得数据了 把它填充在DIV里面,出来的是json格式的字符串
@骑着蜗牛耍流氓: 你怎么填充的?
@晓菜鸟:
后台 是MVC Action方法:
public ActionResult(){
var obj=db.Test.ToList();
return Json(obj);
}
然后前台本来是这样写的:
$("按钮").click(function(){
var htmlobj=$.ajax({
async:false
});
$("div").text(htmlobj);
});
@骑着蜗牛耍流氓: 循环读取你的list集合.