ホームページ ウェブフロントエンド jsチュートリアル ドロップダウン メニューのカスケード操作

ドロップダウン メニューのカスケード操作

May 23, 2018 pm 02:38 PM
ドロップダウンメニュー 操作する

この記事では主にドロップダウン メニューのカスケード操作を詳しく紹介し、Ajax とバックグラウンドの間でデータをインタラクティブに送信するためのツール クラスを共有します。興味のある方は参考にしてください。国、都市、町などの選択などの操作。国を選択すると、次のメニューにその国の都市がリストされます。都市を選択すると、次のメニューに対応する町がリストされます。


この種のメニューのカスケード操作を解決するには、私が理解している2つの方法があります:

①jsを使用して実装し、ページで使用されるカスケードデータをjsに入れ、ページがロードされるときに、jsを使用して表示しますこの方法には多くの解決策がありますが、最も直感的な方法は、人によって考え方が異なるため、ここでは詳しく説明しません。

②ajaxを使用して非同期かつ動的にロードし、対応するselectに表示するこの方法は非常に便利なので、開発での使用をお勧めします。

開発中の小さな例を見てみましょう:


JSP 短いページ:


      <p class="form-group">
        <label class="col-sm-2 control-label">设备类别</label>
        <p class="col-sm-4">
          <select class="basic-single" name="codeCategory" onchange="showCodeSubCate()" id="codeCategory" style="width: 100%">
          
          </select>
        </p>
        <label class="col-sm-2 control-label">设备子类</label>
        <p class="col-sm-4">
          <select class="basic-single" name="codeSubCategory" id="codeSubCate" disabled="disabled" style="width: 100%">
            <option value="">--请选择--</option>
          </select>
        </p>
</p>
ログイン後にコピー

このページには 2 つのオプション、つまりデバイス分類とデバイス サブカテゴリが含まれており、デバイス分類は 1 つのレベル メニューです。デバイス サブカテゴリは 2 次メニューであり、デバイス サブカテゴリの表示内容はデバイスの分類によって決まります。


Ajax コード スニペットを見てみましょう:


function addCodeCategory(){
    $.ajax({
      url: "<%=request.getContextPath()%>/facilitydict/showCodeCategory",
      async: false, //请求是否异步,默认为异步,这也是ajax重要特性
      type: "GET",  //请求方式
      success: function(result) {
        result = $.parseJSON(result);
        var data = result.data;
        var codeCates = data.split(",");
        str =&#39;<option value="6801">--请选择--</option>&#39;;
        for(x in codeCates){
          str+=&#39;<option value="&#39;+codeCates[x]+&#39;">&#39;+codeCates[x]+&#39;</option>&#39;;
        }
        $("#codeCategory").html(str);
        
      }
    });
  }
  
  function showCodeSubCate(){
    $("#codeSubCate").prop("disabled","");//将设备子类的select解除锁定
    var target = $("#codeCategory option:selected").text();
    $.ajax({
      url: "<%=request.getContextPath()%>/facilitydict/showCodeSubCategory",
      data : {codeCategory:target},
      async: false, //请求是否异步,默认为异步,这也是ajax重要特性
      type: "GET",  //请求方式
      success: function(result) {
        result = $.parseJSON(result);
        var data = result.data;
        var codeCates = data.split(",");
        var str="";
        for(x in codeCates){
          str+=&#39;<option value="&#39;+codeCates[x]+&#39;">&#39;+codeCates[x]+&#39;</option>&#39;;
        }
        $("#codeSubCate").html(str);
      }
    });
  }
ログイン後にコピー

デバイス カテゴリ セレクターのコンテンツが変更されると、showCodeSubCate 関数がトリガーされてデータを取得するためにバックグラウンドを要求することは難しくありません。 、その後、要求されたデータが追加されます。デバイスのサブクラスに対応する選択に進みます。バックグラウンド コードの実装は次のとおりです (コントローラー メソッドのみが掲載されています):


@RequestMapping("/showCodeCategory")
  @ResponseBody
  public Result<String> searchCodeCategory() {

    Result<String> rs = new Result<>();
    List<String> codeCategorys = facilityDictService.searchCodeCategory();
    String codeCate = StringUtil.collectionToCommaDelimitedString(codeCategorys);
    rs.setData(codeCate);
    return rs;

  }

  @RequestMapping("/showCodeSubCategory")
  @ResponseBody
  public Result<String> searchCodeSubCategory(HttpServletRequest request) {
    String codeCategory = request.getParameter("codeCategory");
    Result<String> rs = new Result<>();
    List<String> codeSubCategorys = facilityDictService.searchCodeSubCategory(codeCategory);
    String codeCate = StringUtil.collectionToCommaDelimitedString(codeSubCategorys);
    rs.setData(codeCate);
    return rs;
  }
ログイン後にコピー

これら 2 つのメソッドは、それぞれ上記の 2 つの ajax リクエストに対応します。紹介する価値があるのは、バックグラウンドによって返されるデータです。戻り値のタイプは Result< String> で、戻り値のタイプはツール クラスです。具体的な実装は私のブログで参照できます。リンクは次のとおりです。 http://www.cnblogs.com/blog411032/p/5799669.html

ajax はバックグラウンドと対話してデータを送信します。 ツール クラス

 public class Result<T> implements Serializable {

  private static final long serialVersionUID = 3637122497350396679L;

  private boolean success;
  private T data;
  private String msg;

  public Result() {
  }

  public Result(boolean success) {
    this.success = success;
  }

  public boolean isSuccess() {
    return success;
  }

  public void setSuccess(boolean success) {
    this.success = success;
  }

  public T getData() {
    return data;
  }

  public void setData(T data) {
    this.data = data;
  }

  public String getMsg() {
    return msg;
  }

  public void setMsg(String msg) {
    this.msg = msg;
  }

  public Result(boolean success, String msg) {
    super();
    this.success = success;
    this.msg = msg;
  }

  public Result(boolean success, T data) {
    super();
    this.success = success;
    this.data = data;
  }

}
ログイン後にコピー

このクラスは、フロントエンドとバックエンドの対話に非常に便利です。


以下は、フロントエンドとバックエンドの ajax 対話です。バックエンド:


フロントエンドの Ajax コード:


$.ajax({
      url: "<%=request.getContextPath()%>/supp/deleteSupp",
      data : {supplierId:supplierId},
      async: false, //请求是否异步,默认为异步,这也是ajax重要特性
      type: "GET",  //请求方式
      success: function(data) {
        var rs = eval(&#39;(&#39;+data+&#39;)&#39;);
        flag = rs.success;
        if(flag){
          alert("删除成功!");
        }
      }
    });
ログイン後にコピー

以下 バックグラウンドの Java コード:


  @RequestMapping("/deleteSupp")
  @ResponseBody
  public Result<String> deleteSupplier(HttpServletRequest request){
    Result<String> rs = new Result<>();
    String supplierId = request.getParameter("supplierId");
    supplierService.deleteSupplierById(supplierId);
    rs.setSuccess(true);
    return rs;
  }
ログイン後にコピー

上記は私が皆さんのためにコンパイルしたものです。今後も皆様のお役に立ちますように。

関連記事:

AJAX 表示読み込みとポップアップレイヤーオクルージョンページの実装例


Ajax 送信フォームフォームページは依然として問題をすぐに更新します


パラメータに対する ajax の迅速な解決策が長すぎます成功した質問を送信できません


以上がドロップダウン メニューのカスケード操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

WPSテーブルにドロップダウンメニューを作成する方法 WPSテーブルにドロップダウンメニューを作成する方法 Mar 21, 2024 pm 01:31 PM

WPS テーブルのドロップダウン メニューの作成方法: ドロップダウン メニューを設定するセルを選択した後、「データ」、「有効性」の順にクリックし、ポップアップ ダイアログ ボックスで対応する設定を行います。メニューをプルダウンします。 WPS は強力なオフィス ソフトウェアとして、ドキュメントや統計データ テーブルなどを編集する機能を備えており、テキストやデータなどを扱う必要がある多くの人々にとって非常に便利です。 WPSソフトを上手に使って便利に使うためには、WPSソフトの基本的な操作をマスターする必要がありますが、今回は編集部がWPSソフトの使い方を紹介します。表示されるWPSテーブルのダウンメニュー操作を行います。 WPSフォームを開いたら、まず、

PyCharm の使用法チュートリアル: 操作の実行方法を詳しく説明します PyCharm の使用法チュートリアル: 操作の実行方法を詳しく説明します Feb 26, 2024 pm 05:51 PM

PyCharm は非常に人気のある Python 統合開発環境 (IDE) であり、Python 開発をより効率的かつ便利にするための豊富な機能とツールを提供します。この記事では、PyCharm の基本的な操作方法を紹介し、読者がすぐに使い始めてツールの操作に習熟できるように、具体的なコード例を示します。 1. PyCharm をダウンロードしてインストールします。 まず、PyCharm 公式 Web サイト (https://www.jetbrains.com/pyc) にアクセスする必要があります。

sudo とは何ですか?なぜ重要ですか? sudo とは何ですか?なぜ重要ですか? Feb 21, 2024 pm 07:01 PM

sudo (スーパーユーザー実行) は、一般ユーザーが root 権限で特定のコマンドを実行できるようにする、Linux および Unix システムの重要なコマンドです。 sudo の機能は主に次の側面に反映されています。 権限制御の提供: sudo は、ユーザーにスーパーユーザー権限を一時的に取得することを許可することで、システム リソースと機密性の高い操作を厳密に制御します。一般のユーザーは、必要な場合にのみ sudo を介して一時的な権限を取得できるため、常にスーパーユーザーとしてログインする必要はありません。セキュリティの向上: sudo を使用すると、日常的な操作中に root アカウントの使用を回避できます。すべての操作に root アカウントを使用すると、誤った操作や不注意な操作には完全な権限が与えられるため、予期しないシステムの損傷につながる可能性があります。そして

Linux Deployの操作手順と注意事項 Linux Deployの操作手順と注意事項 Mar 14, 2024 pm 03:03 PM

LinuxDeploy の操作手順と注意事項 LinuxDeploy は、ユーザーが Android デバイスにさまざまな Linux ディストリビューションを迅速に展開できるようにする強力なツールで、ユーザーはモバイル デバイスで完全な Linux システムを体験できます。この記事では、LinuxDeploy の操作手順と注意事項を詳しく紹介し、読者がこのツールをより効果的に使用できるように、具体的なコード例を示します。操作手順: Linux のインストールDeploy: まず、インストールします

Win10 起動パスワードの F2 キーを押すのを忘れた場合の対処方法 Win10 起動パスワードの F2 キーを押すのを忘れた場合の対処方法 Feb 28, 2024 am 08:31 AM

おそらく多くのユーザーは、自宅に未使用のコンピュータを複数台持っており、長期間使用していなかったためにパワーオン パスワードを完全に忘れてしまったため、パスワードを忘れた場合の対処方法を知りたいと考えています。それでは、一緒に見てみましょう。 win10 起動パスワードの F2 キーを押し忘れた場合の対処方法 1. コンピューターの電源ボタンを押し、コンピューターの電源を入れるときに F2 キーを押します (コンピューターのブランドによって、BIOS に入るボタンが異なります)。 2. BIOS インターフェイスで、セキュリティ オプションを見つけます (コンピューターのブランドによって場所が異なる場合があります)。通常は上部の設定メニューにあります。 3. 次に、「SupervisorPassword」オプションを見つけてクリックします。 4. この時点で、ユーザーは自分のパスワードを確認できると同時に、その横にある [有効] を見つけて [無効] に切り替えることができます。

Huawei Mate60 Proのスクリーンショット操作手順の共有 Huawei Mate60 Proのスクリーンショット操作手順の共有 Mar 23, 2024 am 11:15 AM

スマートフォンの普及に伴い、スクリーンショット機能は携帯電話を日常的に使用する上で必須のスキルの 1 つになりました。 Huaweiの主力携帯電話の1つであるHuawei Mate60Proのスクリーンショット機能は、当然のことながらユーザーの注目を集めています。今日は、誰もがより便利にスクリーンショットを撮れるように、Huawei Mate60Pro携帯電話のスクリーンショットの操作手順を共有します。まず、Huawei Mate60Pro携帯電話はさまざまなスクリーンショット方法を提供しており、個人の習慣に応じて自分に合った方法を選択できます。以下は、一般的に使用されるいくつかのインターセプトの詳細な紹介です。

iPhone 15 Proおよび15 Pro Maxのアクションボタンを無効にする方法 iPhone 15 Proおよび15 Pro Maxのアクションボタンを無効にする方法 Nov 07, 2023 am 11:17 AM

Apple は、iPhone 15 Pro と 15 Pro Max に Pro 専用のハードウェア機能をいくつか導入し、みんなの注目を集めました。チタン フレーム、洗練されたデザイン、新しい A17 Pro チップセット、エキサイティングな 5 倍望遠レンズなどについて話します。 iPhone 15 Proモデルに追加されたすべての付加機能の中で、アクションボタンは依然として際立って目立つ機能です。言うまでもなく、iPhone でアクションを起動するのに便利な機能です。ただし、誤ってアクション ボタンを押したままにして、誤って機能をトリガーしてしまう可能性があります。率直に言って、面倒です。これを回避するには、iPhone 15 Pro および 15 Pro Max のアクションボタンを無効にする必要があります。させて

WeChat アプレットにドロップダウン メニュー効果を実装する WeChat アプレットにドロップダウン メニュー効果を実装する Nov 21, 2023 pm 03:03 PM

WeChat ミニ プログラムでドロップダウン メニュー効果を実装するには、特定のコード サンプルが必要です。モバイル インターネットの普及に伴い、WeChat ミニ プログラムはインターネット開発の重要な部分となり、ますます多くの人が注目し始めています。 WeChat ミニ プログラムを使用します。 WeChat ミニ プログラムの開発は、従来の APP 開発よりも簡単かつ迅速ですが、特定の開発スキルを習得する必要もあります。 WeChat ミニ プログラムの開発では、ドロップダウン メニューが一般的な UI コンポーネントであり、より良いユーザー エクスペリエンスを実現します。この記事では、WeChat アプレットにドロップダウン メニュー効果を実装し、実用的な機能を提供する方法を詳しく紹介します。

See all articles