자동 채우기 두 번째 메뉴를 사용하여 계단식 드롭다운 메뉴를 만드는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-21 06:50:30
원래의
325명이 탐색했습니다.

How to Create a Cascading Dropdown Menu with Auto-Populating Second Menu?

계단식 드롭다운 메뉴: 첫 번째 선택을 기준으로 두 번째 메뉴 자동 채우기

이 시나리오에서는 두 개의 상호 연결된 드롭다운 메뉴를 만들고 싶습니다. 두 번째 메뉴의 옵션은 첫 번째 메뉴에서 선택한 항목에 따라 동적으로 변경됩니다.

초기 HTML 구조:

<code class="html"><select name="category">
    <option value="0">None</option>
    <option value="1">First</option>
    <option value="2">Second</option>
    <option value="3">Third</option>
    <option value="4">Fourth</option>
</select>

<select name="items">
    <!-- Options will be populated dynamically -->
</select></code>
로그인 후 복사

이벤트 처리:

원하는 기능을 달성하기 위해 첫 번째 드롭다운에서 이벤트 리스너를 사용하여 선택 항목이 변경될 때 Ajax 호출을 트리거합니다.

<code class="javascript"><script type="text/javascript">
    function changeItems(categoryId) {
        $.ajax({
            url: 'process.php?category=' + categoryId,
            success: function(data) {
                $("#items").html(data);
            }
        });
    }
</script></code>
로그인 후 복사

Ajax 처리 요청:

process.php 파일에서 선택한 카테고리에 따라 두 번째 드롭다운에 대한 옵션을 구성합니다.

<code class="php">$categoryId = $_GET['category'];

switch ($categoryId) {
    case 1:
        $options = array(
            'Smartphone', 'Charger'
        );
        break;
    case 2:
        $options = array(
            'Basketball', 'Volleyball'
        );
        break;
    // ...
}

foreach ($options as $option) {
    echo "<option value='$option'>$option</option>";
}</code>
로그인 후 복사

두 번째 드롭다운을 동적으로 업데이트 :

Ajax 호출은 process.php에서 생성된 새 옵션으로 #items 요소를 채웁니다.

<code class="javascript">$("#items").html(data);</code>
로그인 후 복사

데이터베이스 없는 사용자 정의 구현:

데이터베이스가 없는 경우 배열의 각 카테고리에 대한 옵션을 수동으로 정의하고 JavaScript를 통해 두 번째 드롭다운을 업데이트할 수 있습니다.

<code class="javascript">// Define options for each category
const categories = ['First', 'Second', 'Third', 'Fourth'];
const optionArrays = [
    ['Smartphone', 'Charger'],
    ['Basketball', 'Volleyball'],
    // ...
];

// Update second dropdown on category change
$(document).on('change', 'select[name="category"]', function() {
    const selectedCategory = $(this).val();
    const options = optionArrays[selectedCategory - 1]; // Subtract 1 to match array indices

    $('#items').empty();
    for (let i = 0; i < options.length; i++) {
        $('#items').append(`<option value="${options[i]}">${options[i]}</option>`);
    }
});</code>
로그인 후 복사

위 내용은 자동 채우기 두 번째 메뉴를 사용하여 계단식 드롭다운 메뉴를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿