UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#156 JavaScriptを使用して選択肢1と選択肢2を動的に制御する方法

記入日:2023-06-13 編集日:2023-06-13

JavaScriptを使用して選択肢1と選択肢2を動的に制御する方法を解説してみようと思います。

この記事を読むと(約5分)
JavaScriptを使用して選択肢1と選択肢2を動的に制御する方法をイメージできます。

選択肢1と選択肢2を動的に制御

以下のコードは、JavaScriptを使用して果物の選択とサイズの選択肢を動的に制御する機能を実装しています。
ユーザーが果物を選択すると、サイズの選択肢が適切に表示されます。

以下に、処理の解説です。

  1. HTMLのselect要素とoption要素を使用して、果物の選択肢とサイズの選択肢を定義しています。 各選択肢はvalue属性で識別されます。

  2. JavaScriptのupdateSizeOptions()関数は、果物の選択が変更されたときに呼び出されます。 この関数は、サイズの選択肢を動的に更新します。

  3. updateSizeOptions()関数では、次の手順でサイズの選択肢を更新します:
    getElementById()メソッドを使用して、fruitSelectとsizeSelectの要素を取得します。 これにより、JavaScriptからHTMLの要素にアクセスできます。
    fruitSelect.valueを使用して、現在選択されている果物の値を取得します。

  4. サイズの選択肢をリセットするために、sizeSelect.innerHTMLを空にします。 これにより、既存の選択肢が削除されます。

  5. 選択された果物に応じて、適切なサイズの選択肢を設定します:
    もしselectedFruitが "apple" の場合、"小"、"中"、"大"の3つのサイズの選択肢をsizeSelect.innerHTMLに追加します。 これは、文字列の連結を使用して行われます。 もしselectedFruitが "banana" の場合、"小"、"中"の2つのサイズの選択肢を追加します。 もしselectedFruitが "orange" の場合、"小"、"大"の2つのサイズの選択肢を追加します。 それ以外の場合、デフォルトの選択肢「選択してください」を表示します。

<!DOCTYPE html>
<html>
<head>
  <title>Fruit Selection</title>
</head>
<body>
  <h2>果物の選択</h2>
  <select id="fruitSelect" onchange="updateSizeOptions()">
    <option value="">選択してください</option>
    <option value="apple">りんご</option>
    <option value="banana">バナナ</option>
    <option value="orange">オレンジ</option>
  </select>

  <h2>サイズの選択</h2>
  <select id="sizeSelect">
    <option value="">選択してください</option>
  </select>

  <script>
    function updateSizeOptions() {
      var fruitSelect = document.getElementById("fruitSelect");
      var sizeSelect = document.getElementById("sizeSelect");

      // 現在の選択されている果物の値を取得
      var selectedFruit = fruitSelect.value;

      // サイズの選択肢をリセット
      sizeSelect.innerHTML = "";

      // 選択された果物に応じてサイズの選択肢を設定
      if (selectedFruit === "apple") {
        sizeSelect.innerHTML += "<option value='small'>小</option>";
        sizeSelect.innerHTML += "<option value='medium'>中</option>";
        sizeSelect.innerHTML += "<option value='large'>大</option>";
      } else if (selectedFruit === "banana") {
        sizeSelect.innerHTML += "<option value='small'>小</option>";
        sizeSelect.innerHTML += "<option value='medium'>中</option>";
      } else if (selectedFruit === "orange") {
        sizeSelect.innerHTML += "<option value='small'>小</option>";
        sizeSelect.innerHTML += "<option value='large'>大</option>";
      } else {
        sizeSelect.innerHTML = "<option value=''>選択してください</option>";
      }
    }
  </script>
</body>
</html>

このコードでは、innerHTMLプロパティを使用して動的なHTMLの生成と更新を行っています。選択された果物に基づいて、サイズの選択肢を適切に変更することで、ユーザーに正確な情報を提供しています。

また、onchange属性を使用して果物の選択肢が変更された際にupdateSizeOptions()関数が呼び出されるようにしています。これにより、ユーザーが果物を選択するたびに自動的にサイズの選択肢が更新されます。

このアプローチの利点は、JavaScriptを使用して動的なコンテンツの生成と更新ができることです。特定の果物に対応するサイズの選択肢を動的に変更するため、ユーザーは常に適切な選択肢を見ることができます。また、コードはシンプルで読みやすく、新しい果物やサイズの選択肢を追加する場合にも柔軟に対応できます。

このアプローチの改善点としては、現在の実装では選択肢のHTMLを直接文字列として操作しているため、可読性やメンテナンス性に欠ける可能性があります。よりスケーラブルな方法としては、動的な要素の生成やテンプレートエンジンの使用など、より柔軟で効率的な手法を検討することができます。また、将来的な拡張性を考慮して、果物とサイズの選択肢を外部データソースから取得する方法を検討することも重要です。

総括すると、このコードはユーザーが果物を選択するとサイズの選択肢を動的に更新するための実装です。エンジニア目線で見ると、JavaScriptを使用してHTML要素を操作し、条件に応じて選択肢を変更している点が注目されます。これにより、ユーザーエクスペリエンスを向上させる柔軟性と使いやすさが提供されます。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。