ホームページ ウェブフロントエンド jsチュートリアル jQuery HttpHandler XML を使用して 3 レベルの linkage_jquery をシミュレートする例

jQuery HttpHandler XML を使用して 3 レベルの linkage_jquery をシミュレートする例

May 16, 2016 pm 06:03 PM
jquery xml

実装プロセスは次のとおりです。
ステップ 1: xml ファイルを準備し、Area.xml という名前で Web サイトのルート ディレクトリに配置します

コードをコピー コードは次のとおりです。

🎜><省 id="1" name="北京">

<郡 id="1" name="東城区" />






<郡 ID="2" name="霊寿県" />


省>










" 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; }


City クラスに対応します:


public class City
{
private string id;
///
///number
/// < ;/summary>
パブリック文字列 ID
{
get { return id; }
}
プライベート文字列名;
/ // Name
///

public string Name
{
get { return name; }
set { name = value; }
}
}


対応する郡クラス:



コードをコピーprivate string id
///
///

パブリック文字列 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 GetProvinceList()
{
List = new 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 ListGetCityListByProvince(string provId)
{
List list = new 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
});
}
}
戻りリスト
}
/// /// 州番号と市番号に基づいて郡番号を取得します
// /

/// 州番号
/// 市番号
private List GetCountyListByCity(string provId, string cityId)
{
List ; list = new 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 を記述します。
コードをコピー コードは次のとおりです:



省、市、郡の 3 レベルリンク ドロップダウン リスト
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("< option>==都市を選択してください==< /option>"); //州レベルが変更されると都市レベルをクリアします
$("#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]) //選択した郡の名前を表示します
});


<--province-->










このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? Feb 28, 2024 pm 03:12 PM

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常​​、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

jQueryで要素の高さ属性を削除するにはどうすればよいですか? jQueryで要素の高さ属性を削除するにはどうすればよいですか? Feb 28, 2024 am 08:39 AM

jQueryで要素の高さ属性を削除するにはどうすればよいですか?フロントエンド開発では、要素の高さ属性を操作する必要が生じることがよくあります。要素の高さを動的に変更する必要がある場合や、要素の高さ属性を削除する必要がある場合があります。この記事では、jQuery を使用して要素の高さ属性を削除する方法と、具体的なコード例を紹介します。 jQuery を使用して高さ属性を操作する前に、まず CSS の高さ属性を理解する必要があります。 height 属性は要素の高さを設定するために使用されます

jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する Feb 28, 2024 pm 09:06 PM

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: &lt

jQuery を使用してすべての a タグのテキスト コンテンツを変更する jQuery を使用してすべての a タグのテキスト コンテンツを変更する Feb 28, 2024 pm 05:42 PM

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? Feb 29, 2024 am 09:03 AM

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery を使用して DOM 要素を操作する場合、要素に特定の属性があるかどうかを判断する必要がある状況がよく発生します。この場合、jQuery が提供するメソッドを使用してこの関数を簡単に実装できます。以下では、jQuery 要素が特定の属性を持つかどうかを判断するために一般的に使用される 2 つの方法を紹介し、具体的なコード例を添付します。方法 1: attr() メソッドと typeof 演算子 // を使用して、要素に特定の属性があるかどうかを判断します

PHP 関数を使用して XML データを処理するにはどうすればよいですか? PHP 関数を使用して XML データを処理するにはどうすればよいですか? May 05, 2024 am 09:15 AM

PHPXML 関数を使用して XML データを処理します。 XML データを解析します。 simplexml_load_file() および simplexml_load_string() は、XML ファイルまたは文字列を読み込みます。 XML データにアクセスする: SimpleXML オブジェクトのプロパティとメソッドを使用して、要素名、属性値、およびサブ要素を取得します。 XML データを変更する: addChild() メソッドと addAttribute() メソッドを使用して、新しい要素と属性を追加します。シリアル化された XML データ: asXML() メソッドは、SimpleXML オブジェクトを XML 文字列に変換します。実用的な例: 製品フィード XML を解析し、製品情報を抽出し、変換してデータベースに保存します。

XML 解析用の Java ライブラリの比較: 最適なソリューションを見つける XML 解析用の Java ライブラリの比較: 最適なソリューションを見つける Mar 09, 2024 am 09:10 AM

はじめに XML (Extensible Markup Language) は、データを保存および送信するための一般的な形式です。 Java での XML の解析は、データ交換からドキュメント処理に至るまで、多くのアプリケーションにとって必要なタスクです。 XML を効率的に解析するために、開発者はさまざまな Java ライブラリを使用できます。この記事では、開発者が情報に基づいた選択を行えるよう、機能、機能、パフォーマンスに焦点を当てて、最も人気のある XML 解析ライブラリのいくつかを比較します。 DOM (Document Object Model) 解析ライブラリ JavaXMLDOMAPI: Oracle が提供する標準 DOM 実装。開発者が XML ドキュメントにアクセスして操作できるようにするオブジェクト モデルを提供します。 DocumentBuilderFactoryfactory=D

See all articles