`
yfdong21
  • 浏览: 61876 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jQueryJSON 无刷新三级联动

阅读更多

曾祥展

 

 曾祥展

 

 

 <
asp
:
DropDownList 
ID
="ddl1" 
runat
="server" 
Width
="100px" ></
asp
:
DropDownList
>
 <
asp
:
DropDownList 
ID
="ddl2" 
runat
="server" 
Width
="100px" ></
asp
:
DropDownList
>
 <
asp
:
DropDownList 
ID
="ddl3" 
runat
="server" 
Width
="100px" ></
asp
:
DropDownList
>

js:
 <
script 
src
="js/jquery-1.4.2.min.js" 
type
="text/javascript" ></
script
>
    
    <
script 
type
="text/javascript">

        
$(document).ready(function 
() {        
            GetA();
            $("#ddl1"
).change(function 
() { GetB();  });          
            $("#ddl2"
).change(function 
() { GetC();  });         
        });      
        
    function 
GetA()
    {
        $("#ddl1"
).html(""
);
        $("#ddl1"
).append("<option value='-1' selected='selected'>请选择...</option>"
);
        //$("select[name$=ddl1] > option:selected").remove();
        
var 
strId = 0;
        $.getJSON("LoadClass.ashx?ddlId=" 
+ strId, function 
(data) {
         for 
(var 
i = 0; i < data.length; i++) {
             $("select[name$=ddl1]"
).append($("<option></option>"
).val(data[i].ID).html(data[i].Cname));
         };
         GetB();          
     });
                 
    }
    function 
GetB()
    {
        $("#ddl2"
).html(""
); $("#ddl3"
).html(""
);
        var 
strId = $("#ddl1"
).attr("value"
);       
        if 
(strId != 0) {
            $.getJSON("LoadClass.ashx?ddlId=" 
+ strId, function 
(data) {
                for 
(var 
i = 0; i < data.length; i++) {
                    $("select[name$=ddl2]"
).append($("<option></option>"
).val(data[i].ID).html(data[i].Cname));
                };
                GetC();              
            });                            
        }           
    }
    function 
GetC()
    {
        $("#ddl3"
).html(""
);
        var 
strId = $("#ddl2"
).attr("value"
);  
        if 
(strId != 0) {
            $.getJSON("LoadClass.ashx?ddlId=" 
+ strId, function 
(data) {
                for 
(var 
i = 0; i < data.length; i++) {
                    $("select[name$=ddl3]"
).append($("<option></option>"
).val(data[i].ID).html(data[i].Cname));
                };                        
            });                 
        }        
    }
</
script
>

 

LoadClass.ashx:

<%
@ 
WebHandler 
Language
="C#" 
Class
="LoadClass" 
%>


using 
System;
using 
System.Web;

using 
System.Text;
using 
System.Data;

public class 
LoadClass 
: IHttpHandler 
{
    
    public void 
ProcessRequest (HttpContext 
context) {
        // 数组   [{"ID":"275","Cname":"A1"},{"ID":"319","Cname":"A2"},{"ID":"322","Cname":"A3"}]
        
int 
strId = Convert
.ToInt32(context.Request["ddlId"
]);               
        string 
strSQL = "select * from Class where parent_Ptr=" 
+ strId + "  order by classOrder asc "
;
        db 
d = new 
db
();
        DataTable 
dt = d.getDT(strSQL);
        StringBuilder 
strClass = new 
StringBuilder
();
        if 
(dt != null
)
        {
            strClass.Append("["
);
            for 
(int 
i = 0
; i < dt.Rows.Count; i++)
            {
                strClass.Append("{"
);
                strClass.Append("\"ID\":\"" 
+ dt.Rows[i]["id"
].ToString() + "\","
);
                strClass.Append("\"Cname\":\"" 
+ dt.Rows[i]["classCname"
].ToString() + "\""
);

                if 
(i != dt.Rows.Count - 1
)
                {
                    strClass.Append("},"
);
                }
            }

        }
        strClass.Append("}"
);
        strClass.Append("]"
);      
        context.Response.ContentType = "application/json"
;
        context.Response.ContentEncoding = Encoding
.UTF8;
        context.Response.Write(strClass.ToString());
        context.Response.End();
    }
 
    public bool 
IsReusable {
        get 
{
            return false
;
        }
    }

}

注意:

//后台只能获取value值,不能直接获取text,需要通过js、控件中转  
       //结果:275 276 277 
       
Label1.Text = Request.Form[ddl1.UniqueID] + " " 
                   
+ Request.Form["ddl2"
] + " " 
                   
+ Request.Form[ddl3.ClientID.Replace("_"
, "$"
)] ;
遇到的问题:
下拉框text的值通过HiddenField
控件中转
  <
asp
:
HiddenField 
ID
="HiddenField1" 
runat
="server" />
  <
asp
:
HiddenField 
ID
="HiddenField2" 
runat
="server" />
  <
asp
:
HiddenField 
ID
="HiddenField3" 
runat
="server" /> 

把选中下拉框的值赋予隐藏控件中: 
<
script 
type
="text/javascript">       
        var 
Key1 = $("#ddl1>option:selected"
).val();
        $('#HiddenField1'
).val(Key1);
        var 
Key2 = $("#ddl2>option:selected"
).val();
        $('#HiddenField2'
).val(Key2);
        var 
Key3 = $("#ddl3>option:selected"
).val();
        $('#HiddenField3'
).val(Key3);    
   </
script
>

 

选择下拉框后 动态赋值到HiddenField 控件中的值 无法与下拉框选中的值相对应!

可能与初始化有关,赋值这段代码应该放到什么地方呢?或者有什么好的方法,欢迎讨论?

http://www.cnblogs.com/zengxiangzhan/archive/2010/02/21/1670646.html

分享到:
评论

相关推荐

    JQuery实现无刷新省市三级联动

    本篇文章将深入讲解如何使用JQuery来实现这种无刷新的省市三级联动效果。 首先,我们需要理解JQuery的基本概念。JQuery是一个JavaScript库,它简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。其语法...

    AJAX Jquery Json实现省市三级联动

    这三种技术结合在一起,常用于实现动态的、交互性强的网页功能,如我们这里提到的“省市三级联动”。 省市三级联动通常指的是在网页上选择省份时,会自动加载对应的市,选择市后则加载相应的区或县。这种功能在注册...

    无刷新三级联动的例子,带ACCESS数据库

    无刷新三级联动是一种常见的网页交互技术,主要用于提升用户体验,让用户在选择某一选项时,其他相关联的下拉菜单能够即时更新而无需整个页面重新加载。在这个例子中,它结合了ACCESS数据库,使得数据检索和展示更为...

    struts2 jquery json ajax 三级联动菜单

    综上所述,这个项目展示了如何使用Struts2作为后端控制器,jQuery处理前端交互,Ajax实现异步数据传输,以及JSON作为数据交换格式,共同构建一个功能完善的三级联动菜单。开发者需要对这些技术有深入理解,才能有效...

    ajax三级联动,三级联动,联动,ajax,无刷新三级联动

    这里的“三级联动”是指在网页中,三个下拉菜单或者选择框之间通过Ajax进行数据同步和更新,用户在一级菜单中选择一个选项后,二级菜单会根据一级的选择自动加载相关数据,同样,选择二级菜单后,三级菜单也会随之...

    全国城市Ajax无刷新三级联动(可直接用)

    综上所述,全国城市Ajax无刷新三级联动涉及了前端开发中的多个关键技术,包括Ajax通信、JSON数据处理、DOM操作、事件处理、异步请求以及兼容性和安全性考虑。通过掌握这些技术,开发者可以创建出更加流畅、高效的...

    SSM+Maven实现无刷新三级联动

    SSM+Maven实现无刷新三级联动是一种常见的前端与后端交互技术,广泛应用于Web开发中,例如在选择地址、分类等场景。SSM是指Spring、SpringMVC和MyBatis三大框架的组合,Maven则是一个项目管理工具。本项目通过这四个...

    强大的jQuery省市区城市三级联动插件

    **jQuery省市区城市三级联动插件详解** 在Web开发中,常常需要实现省市区三级联动效果,以便用户在填写表单时能方便地选择所在地区。这款强大的jQuery插件正为此目的而设计,它提供了简单易用的API,使得开发者能够...

    js版无刷新省市县三级联动

    在网页开发中,"js版无刷新省市县三级联动"是一种常见的交互设计,它使得用户在选择省份、城市和区县时无需等待页面刷新,提高了用户体验。这种技术主要基于JavaScript实现,结合HTML和CSS,利用AJAX(异步...

    Asp.net+jQuery带数据(json)三级联动

    在这个特定的案例中,我们看到“Asp.net+jQuery带数据(json)三级联动”是一个使用Asp.net后端技术和jQuery前端库,通过JSON数据格式来实现这一功能的项目。以下将详细介绍这个技术组合的关键知识点。 1. Asp.net:...

    前端jquery+后端servlet实现三级联动项目省市区

    这个项目“前端jquery+后端servlet实现三级联动项目省市区”就是一个典型的案例,它展示了如何利用jQuery在前端处理用户交互,以及如何通过Servlet在后端进行数据处理和传输。下面我们将详细探讨这个项目中的关键...

    Ajax无刷新三级联动和分页

    本项目"Ajax无刷新三级联动和分页"正是利用了这一特性,实现了在用户选择省市区时的无缝交互以及数据分页显示。 一、Ajax无刷新技术 Ajax的核心是通过XMLHttpRequest对象向服务器发送异步请求,获取数据后,...

    php+mysql+jquery省市区三级联动

    在三级联动中,jQuery主要用于监听用户的选择事件,当用户在省级选择框中选择一个省份时,通过Ajax异步请求将该省的市数据发送到服务器,服务器返回数据后,jQuery更新市选择框的选项;同理,当市被选中时,获取并...

    jquery省市区街道四级联动菜单

    **jQuery省市区街道四级联动菜单详解** 在网页开发中,我们常常需要实现一种效果:当用户选择一个省级行政区划时,对应的市、区/县、街道等信息会自动下拉更新,这种交互被称为四级联动菜单。这个“jQuery省市区...

    无刷新分级(三级联动)

    无刷新分级,通常指的是在网页设计中实现的三级联动效果,这种效果允许用户在选择一个级别后,下一级别的选项会自动更新而无需重新加载整个页面。这种技术大大提升了用户体验,因为它减少了页面间的跳转时间,使用户...

    .Net+JQuery+SQL 无刷新 省市区 三级联动

    本项目".Net+JQuery+SQL 无刷新 省市区 三级联动"就是利用这种技术实现的一种常见功能:在用户选择省份时,城市和区县会自动下拉更新,而这一切都在后台数据库的支持下无缝完成。 首先,.Net框架是微软开发的一种...

    jQuery JSON实现无刷新三级联动实例探讨

    在本文中,我们将深入探讨如何使用jQuery和JSON技术来实现无刷新的三级联动效果。这种效果常见于网页上的下拉菜单选择,例如省份、城市、区县的选择,用户在选择上级菜单时,下级菜单会自动更新,无需页面刷新。 ...

    无刷新省市县三级联动

    无刷新省市县三级联动是一种常见的前端交互设计,它在网页中实现了省份、城市、区县选择功能,用户在选择上一级地区时,下一级地区会自动更新,无需刷新整个页面,提高了用户体验。这一技术主要基于AJAX...

    jQuery手机端城市地区选择点击省市区三级联动

    在移动应用和网页开发中,实现用户友好...完成上述步骤后,你将得到一个功能完善的jQuery手机端城市地区选择器,实现省市区三级联动的效果。通过不断优化和调整,可以使其更加符合用户的操作习惯,提升应用的整体体验。

Global site tag (gtag.js) - Google Analytics