demo1 is the simplest implementation. The page ID configuration needs to be written in a js file, which is suitable for simple situations
demo2 adds dynamic configuration and can pass in configuration items, which is suitable for pages with multiple cascading drop-downs
The following is the json format of prefecture and city data. It can be obtained using ajax or made into ashx/asmx service. It can also be saved directly as a js file. The format can be adjusted according to your prefecture and city data and the corresponding source code can be modified
var _ds_data=[
{
id:0,
name:" u5317u4EAC",
city:[
{
id:1,
name:"u5317u4EACu5E02",
area:[{id:1,name:"u4E1Cu57CEu533A"},{.. .},{...}...]
},...]
}
In order to prevent garbled characters, unicode encoding is used. The conversion code is as follows:
///
/// Change the original The string is converted to unicode in the format u....u....
///
public static string StringToUnicode(string srcText)
{
string dst = "";
char[] src = srcText.ToCharArray();
for (int i = 0; i < src.Length; i )
{
byte[] bytes = Encoding. Unicode.GetBytes(src[i].ToString());
string str = @"u" bytes[1].ToString("X2") bytes[0].ToString("X2");
dst = str;
}
return dst;
}
///
/// Convert the Unicode string u....u.... format word Convert string to original string
///
public static string UnicodeToString(string srcText)
{
string dst = "";
string src = srcText;
int len = srcText.Length / 6;
for (int i = 0; i <= len - 1; i )
{
string str = "";
str = src .Substring(0, 6).Substring(2);
src = src.Substring(6);
byte[] bytes = new byte[2];
bytes[1] = byte.Parse (int.Parse(str.Substring(0, 2), NumberStyles.HexNumber).ToString());
bytes[0] = byte.Parse(int.Parse(str.Substring(2, 2), NumberStyles .HexNumber).ToString());
dst = Encoding.Unicode.GetString(bytes);
}
return dst;
}
http ://xiazai.jb51.net/201002/yuanma/cityselector.rarPackage download address