请教三个 DropDownListFor 不刷新页面联动改变 的实现
展开全部
首先,你的数据库结构应该有错。数据库中应该有的字段是,name,id,parentId。你这里我没有看到parentId,那你怎么联动?怎么知道省下面有哪些市?所以数据库的列必须有关联。
数据库有关联之后,写一个方法,根据parentId查询数据。控制器调用这个方法,并返回json数据。
在View中写js如下
function changer1(obj, i) {
obj.get(0).options.length = 0; //清空
$("<option></option>").text("请选择").appendTo(obj);
$.ajax({
type: 'GET',
url: '/home/ajax/getcitys/' + i,//这里改成你的根据parentId获取数据的方法
dataType: 'json',
success: function (data) {
var _data = data.Data.d;
$.each(_data, function (t, item) {
var temp = item.split("_");
$("<option></option>").val(temp[0]).text(temp[1]).appendTo(obj);
});
if (i == p) {
$("#drpCity").val(c);
}
else if (i == c) {
$("#drpDistrict ").val(d);
}
}
});
}
$(function () {
//初始化
$.ajax({
type: 'get',
dataType: 'json',
url: '/home/ajax/getcitys/1',//这里改成你的根据parentId获取数据的方法
data: { pid: 0 },
success: function (data) {
var _data = data.Data.d;
$.each(_data, function (j, item) {
var temp = item.split("_");
$("<option></option>").val(temp[0]).text(temp[1]).appendTo($("#drpProvince"));
});
$("#drpProvince").change(function () {
changer1($("#drpCity"), $(this).val());
if (p == "0") {
$("#drpDistrict").get(0).selectedIndex = 0;
}
});
$("#drpCity").change(function () {
changer1($("#drpDistrict"), $(this).val());
});
if (p != "0") {
$("#drpProvince ").val(p);
changer1($("#drpCity"), p);
if (c != "0") {
changer1($("#drpDistrict"), c);
}
}
}
});
数据库有关联之后,写一个方法,根据parentId查询数据。控制器调用这个方法,并返回json数据。
在View中写js如下
function changer1(obj, i) {
obj.get(0).options.length = 0; //清空
$("<option></option>").text("请选择").appendTo(obj);
$.ajax({
type: 'GET',
url: '/home/ajax/getcitys/' + i,//这里改成你的根据parentId获取数据的方法
dataType: 'json',
success: function (data) {
var _data = data.Data.d;
$.each(_data, function (t, item) {
var temp = item.split("_");
$("<option></option>").val(temp[0]).text(temp[1]).appendTo(obj);
});
if (i == p) {
$("#drpCity").val(c);
}
else if (i == c) {
$("#drpDistrict ").val(d);
}
}
});
}
$(function () {
//初始化
$.ajax({
type: 'get',
dataType: 'json',
url: '/home/ajax/getcitys/1',//这里改成你的根据parentId获取数据的方法
data: { pid: 0 },
success: function (data) {
var _data = data.Data.d;
$.each(_data, function (j, item) {
var temp = item.split("_");
$("<option></option>").val(temp[0]).text(temp[1]).appendTo($("#drpProvince"));
});
$("#drpProvince").change(function () {
changer1($("#drpCity"), $(this).val());
if (p == "0") {
$("#drpDistrict").get(0).selectedIndex = 0;
}
});
$("#drpCity").change(function () {
changer1($("#drpDistrict"), $(this).val());
});
if (p != "0") {
$("#drpProvince ").val(p);
changer1($("#drpCity"), p);
if (c != "0") {
changer1($("#drpDistrict"), c);
}
}
}
});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询