JavaScriptを使用したAjaxオートコンプリートの実装方法


  1. HTMLフォームの作成: まず、適切なHTMLフォームを作成します。これには、テキスト入力フィールドと候補リストを表示するための要素が含まれます。例えば、以下のような形式になります。
<input type="text" id="searchInput" autocomplete="off">
<ul id="suggestions"></ul>
  1. JavaScriptの追加: 次に、JavaScriptを使用してオートコンプリートの機能を実装します。以下の手順に従って進めます。

    a. テキスト入力イベントの監視: テキスト入力フィールドに入力があった場合にイベントを監視します。これにより、ユーザーがテキストを入力するたびに、Ajaxリクエストが送信され、候補リストが更新されます。

    const searchInput = document.getElementById('searchInput');
    searchInput.addEventListener('input', handleInput);

    b. 入力の処理とAjaxリクエストの送信: テキスト入力が変更された場合に、入力の値を取得し、サーバーに対してAjaxリクエストを送信します。これにより、サーバーは入力値に基づいて適切な候補リストを生成します。

    function handleInput() {
    const inputValue = searchInput.value;
    // Ajaxリクエストを送信し、候補リストを取得する
    // ここでは、jQueryを使用した例を示しますが、他のライブラリや純粋なJavaScriptでも同様のことができます
    $.ajax({
      url: '/autocomplete',
      method: 'GET',
      data: { query: inputValue },
      success: handleResponse
    });
    }

    c. レスポンスの処理と候補リストの表示: サーバーからのレスポンスを受け取った後、候補リストを表示します。例えば、以下のような方法で候補リストを更新することができます。

    const suggestionsElement = document.getElementById('suggestions');
    function handleResponse(response) {
    // レスポンスから候補リストを抽出する
    const suggestions = response.suggestions;
    // 候補リストを一旦クリアする
    suggestionsElement.innerHTML = '';
    // 候補リストを表示する
    suggestions.forEach((suggestion) => {
      const listItem = document.createElement('li');
      listItem.textContent = suggestion;
      suggestionsElement.appendChild(listItem);
    });
    }

以上の手順に従って実装することで、Ajaxオートコンプリート機能を実現することができます。必要に応じて、CSSスタイルやサーバーサイドの処理についても追加でカスタマイズすることができます。