jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
对于问题从后台获取json数据,将内容填充到下拉列表,代码非常简单,具体过程请看下面代码。
需求:url:链接 par:ID sel:下拉列表选择器
//获取下拉列表
functionBuildSelectBox(url,par,sel){
$(sel).empty();
$.getJSON(url,{id:par},function(json,textStatus){
for(vari=json.length-1;i>=0;i--){
$(sel).prepend('<optionvalue="'+json[i].Id+'">'+json[i].Name+'</option>')
};
$(sel).prepend('<optionvalue="0">请选择</option>')
});
}
以上代码很简单吧,此问题很easy的解决了。
Jquery使用Ajax获取后台返回的Json数据页面处理过程
具体实现过程请看下面代码示例:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<scriptsrc="JS/jquery-1.8.0.min.js"type="text/javascript"></script>
<scripttype="text/javascript">
$(function(){
$.ajax({
url:'jsondata.ashx',
type:'GET',
dataType:'json',
timeout:1000,
cache:false,
beforeSend:LoadFunction,//加载执行方法
error:erryFunction,//错误执行方法
success:succFunction//成功执行方法
})
functionLoadFunction(){
$("#list").html('加载中...');
}
functionerryFunction(){
alert("error");
}
functionsuccFunction(tt){
$("#list").html('');
//eval将字符串转成对象数组
//varjson={"id":"10086","uname":"zhangsan","email":"zhangsan@qq.com"};
//json=eval(json);
//alert("===json:id="+json.id+",uname="+json.uname+",email="+json.email);
varjson=eval(tt);//数组
$.each(json,function(index,item){
//循环获取数据
varname=json[index].Name;
varidnumber=json[index].IdNumber;
varsex=json[index].Sex;
$("#list").html($("#list").html()+"<br>"+name+"-"+idnumber+"-"+sex+"<br/>");
});
}
});
</script>
</head>
<body>
<ulid="list">
</ul>
</body>
</html>
<%@WebHandlerLanguage="C#"Class="jsondata"%>
usingSystem;
usingSystem.Web;
usingSystem.Web.Script.Serialization;
usingSystem.IO;
usingSystem.Text;
usingSystem.Collections.Generic;
usingNewtonsoft.Json;
usingSystem.Data;
publicclassjsondata:IHttpHandler{
publicvoidProcessRequest(HttpContextcontext)
{
context.Response.ContentType="text/plain";
stringJsonStr=JsonConvert.SerializeObject(CreateDT());
context.Response.Write(JsonStr);
context.Response.End();
}
#region创建测试数据源
//创建DataTable
protectedDataTableCreateDT()
{
DataTabletblDatas=newDataTable("Datas");
//序号列
//tblDatas.Columns.Add("ID",Type.GetType("System.Int32"));
//tblDatas.Columns[0].AutoIncrement=true;
//tblDatas.Columns[0].AutoIncrementSeed=1;
//tblDatas.Columns[0].AutoIncrementStep=1;
//数据列
tblDatas.Columns.Add("IdNumber",Type.GetType("System.String"));
tblDatas.Columns.Add("Name",Type.GetType("System.String"));
tblDatas.Columns.Add("BirthDate",Type.GetType("System.String"));
tblDatas.Columns.Add("Sex",Type.GetType("System.String"));
tblDatas.Columns.Add("Wage",Type.GetType("System.Decimal"));
tblDatas.Columns.Add("Bonus",Type.GetType("System.Decimal"));
//统计列开始
tblDatas.Columns.Add("NeedPay",Type.GetType("System.String"),"Wage+Bonus");
//统计列结束
tblDatas.Columns.Add("Address",Type.GetType("System.String"));
tblDatas.Columns.Add("PostCode",Type.GetType("System.String"));
//设置身份证号码为主键
tblDatas.PrimaryKey=newDataColumn[]{tblDatas.Columns["IdNumber"]};
tblDatas.Rows.Add(newobject[]{"43100000000000","张三","1982","0",3000,1000,null,"深圳市","518000"});
tblDatas.Rows.Add(newobject[]{"43100000000001","李四","1983","1",3500,1200,null,"深圳市","518000"});
tblDatas.Rows.Add(newobject[]{"43100000000002","王五","1984","1",4000,1300,null,"深圳市","518000"});
tblDatas.Rows.Add(newobject[]{"43100000000003","赵六","1985","0",5000,1400,null,"深圳市","518000"});
tblDatas.Rows.Add(newobject[]{"43100000000004","牛七","1986","1",6000,1500,null,"深圳市","518000"});
returntblDatas;
}
#endregion
publicboolIsReusable
{
get
{
returnfalse;
}
}
}
<!--
<scripttype="text/javascript">
$(function(){
$.ajax({
url:'jsondata.ashx',
type:'GET',
dataType:'json',
timeout:1000,
cache:false,
beforeSend:LoadFunction,//加载执行方法
error:erryFunction,//错误执行方法
success:succFunction//成功执行方法
})
functionLoadFunction(){
$("#list").html('加载中...');
}
functionerryFunction(){
alert("error");
}
functionsuccFunction(tt){
$("#list").html('');
//eval将字符串转成对象数组
//varjson={"id":"10086","uname":"zhangsan","email":"zhangsan@qq.com"};
//json=eval(json);
//alert("===json:id="+json.id+",uname="+json.uname+",email="+json.email);
varjson=eval(tt);//数组
$.each(json,function(index,item){
//循环获取数据
varKey=json[index].key;
varInfo=json[index].info;
//varidnumber=json[index].IdNumber;
//varsex=json[index].Sex;
$("#list").html($("#list").html()+"<br>"+Key+"----"+Info.name);//+"-"+idnumber+"-"+sex+"<br/>");
});
}
});
</script>
-->
<%@WebHandlerLanguage="C#"Class="jsondata"%>
usingSystem;
usingSystem.Web;
usingSystem.Web.Script.Serialization;
usingSystem.IO;
usingSystem.Text;
usingSystem.Collections;
usingSystem.Collections.Generic;
usingSystem.Data;
publicclassjsondata:IHttpHandler{
publicvoidProcessRequest(HttpContextcontext)
{
context.Response.ContentType="text/plain";
context.Response.Cache.SetNoStore();
stringdata="[{\"key\":\"1\",\"info\":{\"name\":\"222\",\"age\":\"333\",\"sex\":\"444\"}},{\"key\":\"2\",\"info\":{\"name\":\"999\",\"age\":\"000\",\"sex\":\"111\"}}]";
context.Response.Write(newJavaScriptSerializer().Serialize(data));
}
publicboolIsReusable
{
get
{
returnfalse;
}
}
}
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Test2013.aspx.cs"Inherits="Test2013"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title></title>
<scriptsrc="JS/jquery-1.8.0.min.js"type="text/javascript"></script>
<scripttype="text/javascript">
functionGetPara(o){
varsortid=$(o).val();
$.ajax({
url:'GetPara.ashx?type=get&sortid='+sortid,
type:'GET',
dataType:'json',
timeout:3000,
cache:false,
beforeSend:LoadFunction,//加载执行方法
error:erryFunction,//错误执行方法
success:succFunction//成功执行方法
})
functionLoadFunction(){
$("#list").html('加载中...');
}
functionerryFunction(){
alert("error");
}
functionsuccFunction(tt){
$("#list").html('');
varjson=eval(tt);//数组
$.each(json,function(index,item){
//循环获取数据
varId=json[index].id;
varName=json[index].name;
$("#list").html($("#list").html()+"<br>"+Name+"<inputtype='text'id='"+Id+"'/><br/>");
});
}
};
functionSavePara(){
varparameter={};
$("#listinput:text").each(function(){
varkey=$(this).attr("id");
varvalue=$(this).val();
parameter[key]=value;
});
$.ajax({
url:'GetPara.ashx?type=save',
type:'POST',
dataType:'json',
data:parameter,
timeout:3000,
cache:false,
beforeSend:LoadFunction,//加载执行方法
error:erryFunction,//错误执行方法
success:succFunction//成功执行方法
})
functionLoadFunction(){
}
functionerryFunction(){
}
functionsuccFunction(tt){
}
};
</script>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:DropDownListID="ddl1"runat="server"onchange="GetPara(this)">
</asp:DropDownList>
<ulid="list"></ul>
<inputtype="button"value="保存数据"onclick="SavePara()"/>
</div>
</form>
</body>
</html>
<%@WebHandlerLanguage="C#"Class="GetPara"%>
usingSystem;
usingSystem.Web;
usingSystem.Data;
usingSystem.Collections.Generic;
usingSystem.Web.Script.Serialization;
publicclassGetPara:IHttpHandler{
publicvoidProcessRequest(HttpContextcontext){
context.Response.ContentType="text/plain";
stringSortId=context.Request["sortid"];
stringType=context.Request["type"];
if(Type=="get")
{
if(!string.IsNullOrEmpty(SortId))
{
DataTabledt=MSCL.SqlHelper.GetDataTable("select*fromPR_PRODUCTPARASwheresortid='"+SortId+"'");
List<Paras>list=newList<Paras>();
for(inti=0;i<dt.Rows.Count;i++)
{
Parasa=newParas();
a.id=dt.Rows[i]["PARAID"].ToString();
a.name=dt.Rows[i]["PARANAME"].ToString();
list.Add(a);
}
context.Response.Write(newJavaScriptSerializer().Serialize(list));
}
}
elseif(Type=="save")
{
//反序列化json
System.IO.Streamstream=context.Request.InputStream;
System.IO.StreamReadersr=newSystem.IO.StreamReader(stream,System.Text.Encoding.GetEncoding("UTF-8"));
stringsJson=sr.ReadToEnd();
if(sJson.Contains("&"))
{
string[]sArr=sJson.Split('&');
for(inti=0;i<sArr.Length;i++)
{
string[]sArr1=sArr[i].Split('=');
objectid=sArr1[0];
objectvalue=sArr1[1];
}
}
}
else
{}
}
publicboolIsReusable{
get{
returnfalse;
}
}
publicstructParas
{
publicstringid;
publicstringname;
}
}
以上就是本文的全部内容,希望大家喜欢。