実装プロセスは次のとおりです。
ステップ 1: xml ファイルを準備し、Area.xml という名前で Web サイトのルート ディレクトリに配置します
🎜>
" name="龍華区" />
ステップ 2 : XML ファイルで定義された要素に対応するエンティティ クラスを作成します。
public class 州
{
private string id
///
/// Number
///
public;文字列 ID
{
get { return id; }
set { id = value; }
プライベート文字列名;
///
/ // name
///
パブリック文字列 Name
{
get { return name; }
set { name = value; }
private string id;
///
///number
///
パブリック文字列 ID
{
get { return id; }
}
プライベート文字列名;
/ // Name
///
public string Name
{
get { return name; }
set { name = value; }
}
}
コードをコピー
///
パブリック文字列 ID
{
get { return id; }
set { id = value;
}
プライベート文字列名;
///
/// Name
///
public string Name
{
get { return name; >set { name = value; }
}
}
ステップ 3: サーバー側ハンドラー クラスを作成します: Handler.cs
///
2 /// ハンドラー
3 ///
4 public class Handler : IHttpHandler
5 {
6
7 private static static JavaScriptSerializer jss = new JavaScriptSerializer();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain"; = "failure";// デフォルトの戻り結果は失敗です
HttpRequest req = context.Request;
string田舎 = req["province"];//ユーザーが選択した州の番号を取得します
string city = req["city"]; //ユーザーが選択した都市の番号を取得します
string county = req["county"];//ユーザーが選択した郡の番号を取得します
string type = req["type"];//ユーザーが取得する必要があるものを取得します 州、市、郡のリストのタイプ
InitDoc()
if (type.HasValue())
{
switch (type.ToLower())
{
case "province "://ユーザーが州リストを取得する必要がある場合
result = jss.Serialize(GetProvinceList());
break;
case "city"://ユーザーが市区町村リストを取得する必要がある場合
result = jss.Serialize(GetCityListByProvince(province));
case "county; "://ユーザーが郡レベルのリストを取得する必要がある場合
result = jss.Serialize(GetCountyListByCity(province , city));
break;
デフォルト:
break;
}
}
// 結果をテキスト形式でクライアントに返します。
}
///
// / ドキュメント オブジェクトを初期化します
///
private void InitDoc()
{
if (doc == null)
{
doc = XDocument.Load (filePath);
}
}
///
// / 地方リストを初期化します
///
private List
{
List
if (doc != null)
{
XElement root = doc.Root; >foreach (var prov in root.XPathSelectElements("province"))
{
list.Add( new states()
{
Id = prov.Attribute("id").Value,
Name = prov.Attribute("name").Value
});
}
}
戻りリスト;
}
///
/// 州番号に基づいて市区町村番号を取得します
///
/// 州番号 private List
{
List
if (doc != null) = doc.Root;
//xpath 式: /area/province[@id='1' ]/city
string queryPath = "/area/province[@id='" provId "']/city ";
foreach (var city in root.XPathSelectElements(queryPath))
{
list.Add(new City()
{
Id = city.Attribute("id").値、
Name = city.Attribute("name").Value
});
}
}
戻りリスト
}
///
// /
/// 州番号 param>
/// 市番号
private List
{
List
if (doc != null )
XElement root = doc.Root
string queryPath = "/area/province= '" provId "']/city[@id='" cityId "']/county ";
foreach (var county in root.Value,
Name = county.Attribute("name").Value
});
}
}
return list;
}
public bool IsReusable
{
get
{
return
}
}
}
ここでは、System.Xml.XPath 名前空間で XPathSelectElements(string xpath) メソッドと XPathSelectElement(string xpath) メソッドを使用して、xml をクエリします。この方法では、地方番号に基づいて市区町村番号を取得します。 xpath 式を使用します (渡された州番号が 1 であると仮定します):/area/province[@id='1']/city、この式は「/」で始まり、絶対パスの使用を示します。これは、エリアがルート ノードであるためです。つまり、エリアから始まり、その下に州要素があります。そのエリアの下にあるすべての州要素のうち、id 属性値が 1 の州要素を取得したい場合は、/area/province[@id=] を使用できます。 '1']、つまり、州の後に条件 [@id='1'] を追加すると、エリアの下に id 属性が 1 の州要素を取得します。次に、province 要素の下にあるすべての都市を取得したいので、その後ろに /city を追加するだけで済み、最終的な xpath 式は /area/province[@id='1']/city になります。
また、このクエリの XML は現在の Web サイトのルート ディレクトリにあるため、他の場所にある場合は、クエリを実行するときに名前空間を追加する必要があります。
XML ファイルから読み取られた値は、対応するディレクトリにアセンブルされます。エンティティ オブジェクトを取得した後、System.Web.Script.Serialization 名前空間の JavaScriptSerializer クラスの Serialize メソッドを使用して、取得したエンティティ オブジェクトを json データにシリアル化し、クライアントに返します。
ステップ 4: html と js を記述します。
script type="text /javascript">
$(function () {
$.post("/Handler.ashx", { "type": "province" }, function (data, status) {
if ( status == "success") {
if (data != "failure") {
data = $.parseJSON(data); //サーバーから返された json データを解析します
for (var i = 0 ; i var value = data[i].Id ":" data[i].Name; // オプションの値を設定します形式: "number:name"
$("#province").append("");
}
}
}
}, "text");
$("#province").change(function () {
var selectValue = $(this). val(); //州オプションの選択された値を取得します
var provId = selectValue.split(':')[0] //数値を取得します
var provTxt = selectValue.split(':') [1]; //名前を取得します
$("#txtProvince").html(provTxt); //選択した州の名前を表示します
$("#city").html("==都市を選択してください=="); //州レベルが変更されると都市レベルをクリアします
$("#county").html(""); //州レベルが変更されたときに郡レベルをクリア
$.post("/Handler.ashx", { "province": provId, "type": " city" }, function (データ, ステータス) {
if (ステータス == "成功") {
if (データ != "失敗") {
データ = $.parseJSON(データ);
for (var i = 0; i var value = data[i].Id ":" data[i].Name; ).append(""); "テキスト");
});
$("#city").change(function () {
var provId = $("#province").val().split(': ')[0];
var selectValue = $(this).val(); //上と同じ
var cityId = selectValue.split(':')[0]; //上と同じ🎜>var cityTxt = selectValue.split(':')[1]; //上と同じ
$("#txtCity").html(cityTxt); //選択した都市の名前を表示します
$("#county").html(""); //上記と同じ
$.post("/Handler.ashx", { "province": provId, "city": cityId, "type": "county" }, function (data, status) {
if (status == "success") {
if (data != "失敗") {
data = $.parseJSON(data);
for (var i = 0; i var value = data[i].Id " :" data[i].Name;
$("#county").append(" ") ;
}
}
}
}, "テキスト")
});
$("#county").change(function () {
$ ("#txtCounty").html($(this).val().split(':' )[1]) //選択した郡の名前を表示します
});
コードは次のとおりです:

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

Quartzタイマーを使用してタスクをスケジュールする場合、Quartzでタスク通知を事前に送信する方法、タスクの実行時間はCron式によって設定されます。今...

JavaScriptプログラミング、プロトタイプチェーンの関数パラメーターの理解と操作のJavaScriptのプロトタイプチェーンの関数のパラメーターを取得する方法は、一般的で重要なタスクです...

WeChatアプレットWeb-ViewでVue.jsを使用する動的スタイルの変位障害がvue.jsを使用している理由の分析...

複数のリンクの同時ゲットリクエストを作成し、結果を返すために順番に判断する方法は? TamperMonkeyスクリプトでは、複数のチェーンを使用する必要があることがよくあります...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1
使いやすく無料のコードエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ホットトピック



