首页 新闻 会员 周边 捐助

Ajax 、Post、ashx、select

0
[已关闭问题] 关闭于 2013-08-29 17:46

用Ajax通过Post请求给select绑定值时,一直获取不到数据请大神看看

ashx

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
if (context.Request["action"] == "GetPDF417")
{
GetPDF417();
}
else if (context.Request["action"] == "GetBarCode")
{
GetBarCode();
}
context.Response.Flush();
context.Response.End();
}

 

private void GetBarCode()
{
var cxt = HttpContext.Current;
var jsonStr = "";
DataSet ds = mGear.Projects.Utility.SqlHelper.ExecuteDataset(conn, CommandType.StoredProcedure, "SelectBarCode");
jsonStr = JsonConvert.SerializeObject(ds);


cxt.Response.Write(jsonStr);
}

js

$(document).ready(function () {
$.ajax({ url: "Pdf417.ashx/GetBarCode",
type: "post", dataType: "json",
contentType: "application/json;charest=utf-8",
traditional: true,
success: function (data) {
var data = eval(data);
for (var i in data) {
var jsonObj = $.parseJSON(data[i]);
var optionstring = "";
for (var item in jsonObj) {
jsonObj = eval(jsonObj.Table)
for (var i = 0; i < jsonObj.length; i++) {
optionstring += "<option value='" + jsonObj[i].Barcode_File + "'>" + jsonObj[i].BarCodeDescript + "</option>";
}

}
$("#selectBarCodeName").html(optionstring);
}
},
error: function (msg) {
alert("出错了!");
}
});

});

hxkk的主页 hxkk | 初学一级 | 园豆:181
提问于:2013-08-09 17:56
< >
分享
所有回答(3)
0

建议给代码加上着色

dudu | 园豆:29570 (高人七级) | 2013-08-09 18:10

$.post("Pdf417.ashx action=GetBarCode", function (data) {
alert(data);
var optionstring = ""; 
for (var item in data) {
alert(data);
optionstring += "<option value=" + data[item].BarCodeImage + ">" + item + "</option>";
}
alert(optionstring);
$("#selectBarCodeName").html(optionstring);
});
}

我现在在第一个alert(data)里面是可以弹出json数据的,但到for循环时alert时弹出的为什么会是空的呢?

支持(0) 反对(0) hxkk | 园豆:181 (初学一级) | 2013-08-12 11:38
0

 url: "Pdf417.ashx/GetBarCode",

改成下面的再试试~

url: "Pdf417.ashx",
data:{ "action": "GetBarCode" },
libaoheng | 园豆:1433 (小虾三级) | 2013-08-09 18:24
0

 url: "Pdf417.ashx/GetBarCode"

修改为 url: "Pdf417.ashx? type=GetBarCode"

Ashx里面用context.Request.QueryString["type"]来判断。

另外看一下Pdf417.ashx路径和你请求的路径对不对,看看是不是要修改成../Pdf417.ashx

当然你可以调试:error: function (msg) {
alert("出错了!");} 在里面看一下msg的具体是什么错误。

 

小AI | 园豆:354 (菜鸟二级) | 2013-08-09 20:10

$.post("Pdf417.ashx action=GetBarCode", function (data) {
alert(data);
var optionstring = "";
for (var item in data) {
alert(data);
optionstring += "<option value=" + data[item].BarCodeImage + ">" + item + "</option>";
}
alert(optionstring);
$("#selectBarCodeName").html(optionstring);
});
}

我现在在第一个alert(data)里面是可以弹出json数据的,但到for循环时alert时弹出的为什么会是空的呢?

支持(0) 反对(0) hxkk | 园豆:181 (初学一级) | 2013-08-12 11:28

@hxkk: 分析data的结构。一个马上搞定了。

另外“Pdf417.ashx action=GetBarCode” 你这里面少了“?”

支持(0) 反对(0) 小AI | 园豆:354 (菜鸟二级) | 2013-08-12 15:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册