jquery ajax 通过json取值并且进行联动
2012-07-05 15:48
423 查看
前台页面:
JS 部分:(这里的js如果单独写为一个js文件,貌似联动不起作用,所以建议大家还是放在页面里面(html、aspx))
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "POST",
url: "IndexHandler.ashx",
//我们用text格式接收
//dataType: "text",
//json格式接收数据
dataType: "json",
data: "meth=load&pid=0",
success: function (msg) {
//实例2个字符串变量来拼接下拉列表
var vocaspec = "<select id=\"seVocaspec\" name=\"vocaspec\"><option value=\"-1\">--请选择--</option>";
//使用jquery解析json中的数据
$.each(msg.voce, function (n, value) {
vocaspec += ("<option value=\"" + value.code + "\">" + value.name);
vocaspec += ("</option>");
});
vocaspec += ("</select>");
$("#vocaspec").html(vocaspec);
}
});
$("#seVocaspec").change(function () {
if ($(this).val() == "-1") { $("#industr").remove(); return; }
else {
$.ajax({
type: "POST",
url: "IndexHandler.ashx",
//我们用text格式接收
//dataType: "text",
//json格式接收数据
dataType: "json",
data: "meth=load&pid=" + $(this).val(),
success: function (msg) {
//实例2个字符串变量来拼接下拉列表
var industr = "<select name=\"industr\" id=\"industr\"><option value=\"-1\">--请选择--</option>";
//使用jquery解析json中的数据
$.each(msg.voce, function (n, value) {
industr += ("<option value=\"" + value.code + "\">" + value.name);
industr += ("</option>");
});
industr += ("</select>");
$("#industr").html(industr);
}
});
}
});
});
</script>
html部分:
企业性质<div id="vocaspec">
</div>
行业类型<div id="industr">
</div>
IndexHandler.ashx部分:(我这里只是一个简单的数据绑定取值,当然也可以从数据库取得数据,具体取数据查看项目实际情况)
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
//接收提交过来的meth参数
string meth = context.Request.Params["meth"].ToString();
string pid = context.Request.Params["pid"].ToString();
//根据参数调用不同的方法
switch (meth)
{
case "load":
loadjson(context, pid);
break;
}
}
private void loadjson(HttpContext context, string pid)
{
//实例BLL
List<Area> areaList = new List<Area>();
if (pid == "0")
{
areaList.Add(new Area
{
AreaID = "01",
AreaName = "罗湖区",
PID = "0"
});
areaList.Add(new Area
{
AreaID = "02",
AreaName = "福田区",
PID = "0"
});
}
if (pid == "01")
{
areaList.Add(new Area
{
AreaID = "0101",
AreaName = "莲塘",
PID = "01"
});
areaList.Add(new Area
{
AreaID = "0102",
AreaName = "黄贝岭",
PID = "01"
});
}
if (pid == "02")
{
areaList.Add(new Area
{
AreaID = "0201",
AreaName = "八卦岭",
PID = "02"
});
areaList.Add(new Area
{
AreaID = "0202",
AreaName = "华强",
PID = "02"
});
}
//实例一个StringBuilder 用来拼接一个json数据
StringBuilder sbvoca = new StringBuilder();
if (areaList != null && areaList.Count > 0)
{
sbvoca.Append("{\"voce\":[");
int i = 1;
int count = areaList.Count;
foreach (Area dr in areaList)
{
if (i == count)
{
sbvoca.Append("{\"code\":\"" + dr.AreaID + "\",\"name\":\"" + dr.AreaName + "\"}");
}
else
{
sbvoca.Append("{\"code\":\"" + dr.AreaID + "\",\"name\":\"" + dr.AreaName + "\"},");
}
i++;
}
sbvoca.Append("]");
}
sbvoca.Append("}");
context.Response.Write(sbvoca.ToString());
context.Response.End();
}
public class Area
{
public string AreaID { get; set; }
public string AreaName { get; set; }
public string PID { get; set; }
}
JS 部分:(这里的js如果单独写为一个js文件,貌似联动不起作用,所以建议大家还是放在页面里面(html、aspx))
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "POST",
url: "IndexHandler.ashx",
//我们用text格式接收
//dataType: "text",
//json格式接收数据
dataType: "json",
data: "meth=load&pid=0",
success: function (msg) {
//实例2个字符串变量来拼接下拉列表
var vocaspec = "<select id=\"seVocaspec\" name=\"vocaspec\"><option value=\"-1\">--请选择--</option>";
//使用jquery解析json中的数据
$.each(msg.voce, function (n, value) {
vocaspec += ("<option value=\"" + value.code + "\">" + value.name);
vocaspec += ("</option>");
});
vocaspec += ("</select>");
$("#vocaspec").html(vocaspec);
}
});
$("#seVocaspec").change(function () {
if ($(this).val() == "-1") { $("#industr").remove(); return; }
else {
$.ajax({
type: "POST",
url: "IndexHandler.ashx",
//我们用text格式接收
//dataType: "text",
//json格式接收数据
dataType: "json",
data: "meth=load&pid=" + $(this).val(),
success: function (msg) {
//实例2个字符串变量来拼接下拉列表
var industr = "<select name=\"industr\" id=\"industr\"><option value=\"-1\">--请选择--</option>";
//使用jquery解析json中的数据
$.each(msg.voce, function (n, value) {
industr += ("<option value=\"" + value.code + "\">" + value.name);
industr += ("</option>");
});
industr += ("</select>");
$("#industr").html(industr);
}
});
}
});
});
</script>
html部分:
企业性质<div id="vocaspec">
</div>
行业类型<div id="industr">
</div>
IndexHandler.ashx部分:(我这里只是一个简单的数据绑定取值,当然也可以从数据库取得数据,具体取数据查看项目实际情况)
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
//接收提交过来的meth参数
string meth = context.Request.Params["meth"].ToString();
string pid = context.Request.Params["pid"].ToString();
//根据参数调用不同的方法
switch (meth)
{
case "load":
loadjson(context, pid);
break;
}
}
private void loadjson(HttpContext context, string pid)
{
//实例BLL
List<Area> areaList = new List<Area>();
if (pid == "0")
{
areaList.Add(new Area
{
AreaID = "01",
AreaName = "罗湖区",
PID = "0"
});
areaList.Add(new Area
{
AreaID = "02",
AreaName = "福田区",
PID = "0"
});
}
if (pid == "01")
{
areaList.Add(new Area
{
AreaID = "0101",
AreaName = "莲塘",
PID = "01"
});
areaList.Add(new Area
{
AreaID = "0102",
AreaName = "黄贝岭",
PID = "01"
});
}
if (pid == "02")
{
areaList.Add(new Area
{
AreaID = "0201",
AreaName = "八卦岭",
PID = "02"
});
areaList.Add(new Area
{
AreaID = "0202",
AreaName = "华强",
PID = "02"
});
}
//实例一个StringBuilder 用来拼接一个json数据
StringBuilder sbvoca = new StringBuilder();
if (areaList != null && areaList.Count > 0)
{
sbvoca.Append("{\"voce\":[");
int i = 1;
int count = areaList.Count;
foreach (Area dr in areaList)
{
if (i == count)
{
sbvoca.Append("{\"code\":\"" + dr.AreaID + "\",\"name\":\"" + dr.AreaName + "\"}");
}
else
{
sbvoca.Append("{\"code\":\"" + dr.AreaID + "\",\"name\":\"" + dr.AreaName + "\"},");
}
i++;
}
sbvoca.Append("]");
}
sbvoca.Append("}");
context.Response.Write(sbvoca.ToString());
context.Response.End();
}
public class Area
{
public string AreaID { get; set; }
public string AreaName { get; set; }
public string PID { get; set; }
}
相关文章推荐
- winfrom如何通过http来进行通信,并且通过传递json格式的数据可接受json格式的数据
- 转 winfrom如何通过http来进行通信,并且通过传递json格式的数据可接受json格式的数据
- jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
- jquery ajax返回json数据进行前后台交互实例
- android通过httpClient请求获取JSON数据并且解析
- jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
- 今天写了一个通过switch进行添加,修过,显示,删除程序,发上来大家看看,哈哈,并且用了smarty模版
- 通过Postman模拟Json数据并且在服务器端显示的方法
- 通过Http地址返回JSON数据,进行解析;通过ftp返回.txt文件数据,进行解析;
- 通过Ajax进行Post提交Json数据的方法
- php jquery ajax json 全国省市区三级联动下拉列表 简单实现
- 通过MSSQL把对文件进行修改重命名,并且自动增加流水号
- 定义一个不受计算机字长限制的整数类INT,要求INT与INT以及INT与C++基本数据类型int之间能进行+、-、×、÷和=运算,并且能通过cout输出INT类型的值。(持续添加)
- 利用GSON对json数据中的时间类型字符串进行处理,并且进行数据库查询
- javascript中创建对象,并序列化为json,通过$.ajax的提交json数据到后台方法,取值为null的问题
- JQuery通过JSON和Servlet进行交互
- 通过服务器返回来JSON歌词数据进行解析
- Android中通过Gson进行json解析
- Android 中通过HTTPRequest 与服务端进行 JSON格式数据交互