struts2.1 和ajax实现二级下拉框联动,使用jquery、json,代码怎么实现。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2.1 和ajax实现二级下拉框联动,使用jquery、json,代码怎么实现。相关的知识,希望对你有一定的参考价值。

参考技术A <script type="text/javascript">
$(document).ready(function()
var da=null;
//获取一级下拉数据,加载页面时加载数据
$.ajax(
type:"post",
data:,
url:"...........",
success:function(data)da=data;,
dataType:"json"
);
//为第一个下拉加载数据
selectinit(da,"s1");
//第一个下拉的onchange事件绑定
$("#s1").onchange(function()
var select1value=$("#s1").value;
select2datasouse(select1value);
//为第二个下拉加载数据
selectinit(da,"s2");
);
);
//获取二级下拉的数据
function select2datasouse(shenid)
$.ajax(
type:"post",
data:"shenid":shenid,
url:"...........",
success:function(data)da=data;,
dataType:"json"
);

function selectinit(data,selectid,properName)
if(data!=null)
var $select1=$("#"+selectid);
$select1.empty();
$("<option/>").attr("value","0").html("--请选择--").appendTo($select1);
for(var i=0;i<data.length;i++)
$("<option/>").attr("value",data[i].id).html(data[i].Name).appendTo($select1);



</script>
</head>

<body>
<select id="s1" name="s1"></select>
<select id="s2" name="s2"></select>
</body>
参考技术B 我这有一个strruts1和ajax实现的二级联动案例,
省市级联ssh1+jquery+json;struts2.1也可以实现,参考我这个稍微改动一下就OK了!
如果需要,请把邮箱贴出来!追问

感谢你们的回答
我邮箱:511411973@qq.com

本回答被提问者采纳
参考技术C 要删除某一行一定要一个唯一的id(id值必须唯一)

<table id="table4" border="1">
<thead>
<tr>
<td><input type="checkbox" name="qx" id="qx"/></td>
<td>文章标题</td>
<td>分类</td>
<td>发布时间</td>
<td>操作</td>
</tr>
</thead>
<tbody id="content">

</tbody>
</table>

jquery部分:

假设返回值是:var a = [,];

var arr = Array();

for(var i=0;i<a.length;i++)
arr.push('<tr>');
arr.push('<td><input type="checkbox"></td>');
arr.push('<td>'+a[i].title+'</td>');
arr.push('<td>'+a[i].cate+'</td>');
arr.push('</tr>');

for(var i=0;i<arr.length;i++)
$('#content').append(arr[i]);


append()可以添加连续添加内容,之前的内容不便,如果要直接起到覆盖作用:可以用html()

jQuery+PHP+MySQL实现二级联动下拉菜单


二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动。本文将通过实例讲解使用jQuery+PHP+MySQL来实现大小分类二级下拉联动效果。

先看下效果

 

实现的效果就是当选择大类时,小类下拉框里的选项内容也随着改变。实现原理:根据大类的值,通过jQuery把值传给后台PHP处理,PHP通过查询MySQl数据库,得到相应的小类,并返回JSON数据给前端处理。

XHTML

首先我们要建立两个下拉选择框,第一个是大类,第二个是小类。大类的值可以是预先写好,也可以是从数据库读取。

<label>大类:</label> 
<select name="bigname" id="bigname"> 
   <option value="1">前端技术</option> 
   <option value="2">程序开发</option> 
   <option value="3">数据库</option> 
</select> 
<label>小类:</label> 
<select name="smallname" id="smallname"> 
</select> 

jQuery

先写一个函数,获取大类选择框的值,并通过$.getJSON方法传递给后台server.php,读取后台返回的JSON数据,并通过$.each方法遍历JSON数据,将对应的值写入一个option字符串,最后将option追加到小类里。

function getSelectVal(){ 
    $.getJSON("server.php",{bigname:$("#bigname").val()},function(json){ 
        var smallname = $("#smallname"); 
        $("option",smallname).remove(); //清空原有的选项 
        $.each(json,function(index,array){ 
            var option = "<option value='"+array['id']+"'>"+array['title']+"</option>"
            smallname.append(option); 
        }); 
    }); 
} 

注意,在遍历JSON数据追加之前一定要先将小类里的原有的项清空。清空选项的方法有两种,一种是上文代码中提到,还有一种更简单直接的方法:

smallname.empty(); 

然后,在页面载入后执行调用函数:

$(function(){ 
    getSelectVal(); 
    $("#bigname").change(function(){ 
        getSelectVal(); 
    }); 
}); 

在页面初始的时候,下拉框是要设置选项的,所以在初始的时候就要调用getSelectVal(),而当大类选项改变时,也调用了getSelectVal()。

PHP

include_once("connect.php"); //链接数据库 
 
$bigid = $_GET["bigname"]; 
if(isset($bigid)){ 
    $q=mysql_query("select * from catalog where cid = $bigid"); 
    while($row=mysql_fetch_array($q)){ 
        $select[] = array("id"=>$row[id],"title"=>$row[title]); 
    } 
    echo json_encode($select); 

根据jQuery传递过来的大类的value值,构造SQL语句查询分类表,最终输出JSON数据。本站在未做特别说明的情况下所使用的PHP与MySQL连接,和查询语句等均使用原始语句方法如mysql_query等,目的就是为了让读者能够直观的知晓数据的传输查询。

最后附上MYSQL表结构:

CREATE TABLE `catalog` ( 
  `id` mediumint(6) NOT NULL auto_increment, 
  `cid` mediumint(6) NOT NULL default '0'
  `title` varchar(50) NOT NULL
  PRIMARY KEY  (`id`) 
) ENGINE=MyISAM  DEFAULT CHARSET=utf8; 


以上是关于struts2.1 和ajax实现二级下拉框联动,使用jquery、json,代码怎么实现。的主要内容,如果未能解决你的问题,请参考以下文章

三级联动怎么回显 javaweb

asp 下拉框 二级联动

java web开发下拉框联动显示,显示的数据市是数据库中获取 比如 省、市、地区,应该如何做?

ADO.NET——二级联动 +ajax

asp.net中下拉框二级联动,第二个下拉框出现乱码的问题

asp.net下拉框二级联动(如何实现)