下拉菜单无刷新调用php,Ajax怎么实现下拉框无刷新联动

本文详细介绍了如何使用Ajax实现下拉框的无刷新联动效果,通过JavaScript和控制器交互,动态加载数据。从获取省份、城市、区县到商圈的级联选择,展示了完整的代码实现和流程,帮助开发者理解并应用到实际项目中。
摘要由CSDN通过智能技术生成

这次给大家带来Ajax怎么实现下拉框无刷新联动,Ajax实现下拉框无刷新联动的注意事项有哪些,下面就是实战案例,一起来看一下。

HTML代码:@{

Layout = null;

}

@using DAL;

@using System.Data;

@{

AreaDal areaDal = new AreaDal();

string areaId = ViewBag.areaId;

DataRow drArea = areaDal.GetArea(areaId);

string countyId = drArea == null ? "-1" : drArea["countyId"].ToString();

DataRow drCounty = areaDal.GetCounty(countyId);

string cityId = drCounty == null ? "-1" : drCounty["cityId"].ToString();

DataRow drCity = areaDal.GetCity(cityId);

string provinceId = drCity == null ? "-1" : drCity["provinceId"].ToString();

}

商圈选择

//选中

function select(selId, id, callback) {

$("#" + selId).val(id);

if (callback) callback();

}

//获取省列表

function getProvinces(callback) {

$.ajax({

type: "POST",

url: "@Url.Content("~/Backstage/Area/GetProvinces")",

data: {},

success: function (text) {

$("#province").html(text);

if (callback) callback();

},

error: function () {

}

});

}

//获取市列表

function getCities(pid, callback) {

$.ajax({

type: "POST",

url: "@Url.Content("~/Backstage/Area/GetCities")",

data: { "provinceId": pid, },

success: function (text) {

$("#city").html(text);

if (callback) callback();

},

error: function () {

}

});

}

//获取区县列表

function getCounties(pid, callback) {

$.ajax({

type: "POST",

url: "@Url.Content("~/Backstage/Area/GetCounties")",

data: { "cityId": pid, },

success: function (text) {

$("#county").html(text);

if (callback) callback();

},

error: function () {

}

});

}

//获取商圈列表

function getAreas(pid, callback) {

$.ajax({

type: "POST",

url: "@Url.Content("~/Backstage/Area/GetAreas")",

data: { "countyId": pid, },

success: function (text) {

$("#area").html(text);

if (callback) callback();

},

error: function () {

}

});

}

==请选择==

==请选择==

==请选择==

==请选择==

//选择省

$("#province").change(function () {

var id = $(this).find("option:selected").val();

getCities(id, function () {

$("#city").change();

});

});

//选择市

$("#city").change(function () {

var id = $(this).find("option:selected").val();

getCounties(id, function () {

$("#county").change();

});

});

//选择区县

$("#county").change(function () {

var id = $(this).find("option:selected").val();

getAreas(id, function () {

$("#area").change();

});

});

getProvinces(function () {

select("province", '@provinceId', function () {

getCities('@provinceId', function () {

select("city", '@cityId', function () {

getCounties('@cityId', function () {

select("county", '@countyId', function () {

getAreas('@countyId', function () {

select("area", '@areaId');

});

});

});

});

});

});

});

Controller代码:using System;

using System.Collections.Generic;

using System.Data;

using System.Linq;

using System.Text;

using System.Web.Mvc;

using DAL;

namespace Controllers.Backstage

{

///

/// 行政区划

///

public class AreaController : AdminBaseController

{

#region 构造函数及变量

private SQLiteHelper.SQLiteHelper sqliteHelper;

private AreaDal areaDal;

public AreaController()

{

sqliteHelper = new SQLiteHelper.SQLiteHelper();

areaDal = new AreaDal();

}

#endregion

#region 行政区划商圈级联选择页面

public ActionResult AreaSelect()

{

return PartialView();

}

#endregion

#region 获取全部省

public ActionResult GetProvinces()

{

DataTable dt = areaDal.GetProvincesAll();

StringBuilder sbHtml = new StringBuilder();

sbHtml.Append("==请选择==");

foreach (DataRow dr in dt.Rows)

{

sbHtml.AppendFormat("{1}", dr["id"].ToString(), dr["name"].ToString());

}

return Content(sbHtml.ToString());

}

#endregion

#region 根据省获取市

public ActionResult GetCities(string provinceId)

{

DataTable dt = areaDal.GetCities(provinceId);

StringBuilder sbHtml = new StringBuilder();

sbHtml.Append("==请选择==");

foreach (DataRow dr in dt.Rows)

{

sbHtml.AppendFormat("{1}", dr["id"].ToString(), dr["name"].ToString());

}

return Content(sbHtml.ToString());

}

#endregion

#region 根据市获取区县

public ActionResult GetCounties(string cityId)

{

DataTable dt = areaDal.GetCounties(cityId);

StringBuilder sbHtml = new StringBuilder();

sbHtml.Append("==请选择==");

foreach (DataRow dr in dt.Rows)

{

sbHtml.AppendFormat("{1}", dr["id"].ToString(), dr["name"].ToString());

}

return Content(sbHtml.ToString());

}

#endregion

#region 根据区县获取商圈

public ActionResult GetAreas(string countyId)

{

DataTable dt = areaDal.GetAreas(countyId);

StringBuilder sbHtml = new StringBuilder();

sbHtml.Append("==请选择==");

foreach (DataRow dr in dt.Rows)

{

sbHtml.AppendFormat("{1}", dr["id"].ToString(), dr["name"].ToString());

}

return Content(sbHtml.ToString());

}

#endregion

}

}

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值