Dependent Dropdowns includes a modal to display results

Dependent Dropdown

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Dependent Dropdown</title>

    <style>

        body {

            font-family: Arial, sans-serif;

            margin: 20px;

        }


        label {

            display: block;

            margin-bottom: 8px;

        }


        select {

            width: 100%;

            padding: 8px;

            margin-bottom: 16px;

        }


        button {

            padding: 10px;

            background-color: #4CAF50;

            color: white;

            border: none;

            cursor: pointer;

        }


        .modal {

            display: none;

            position: fixed;

            top: 0;

            left: 0;

            width: 100%;

            height: 100%;

            background-color: rgba(0,0,0,0.7);

            justify-content: center;

            align-items: center;

        }


        .modal-content {

            background-color: #fefefe;

            padding: 20px;

            border-radius: 5px;

            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

        }

    </style>

</head>

<body>


    <label for="state">Select State:</label>

    <select id="state" onchange="populateDistricts()">

        <option value="maharashtra">Maharashtra</option>

        <option value="karnataka">Karnataka</option>

        <!-- Add more states as needed -->

    </select>


    <label for="district">Select District:</label>

    <select id="district"></select>


    <button onclick="showResults()">Show Results</button>


    <div class="modal" id="resultModal">

        <div class="modal-content">

            <span onclick="closeModal()" style="float: right; cursor: pointer;">&times;</span>

            <h2>Results</h2>

            <p id="resultText"></p>

        </div>

    </div>


    <script>

        function populateDistricts() {

            const stateSelect = document.getElementById("state");

            const districtSelect = document.getElementById("district");

            const selectedState = stateSelect.value;


            // Clear previous options

            districtSelect.innerHTML = '';


            // Populate districts based on the selected state

            if (selectedState === "maharashtra") {

                const districts = ["Mumbai", "Pune", "Nagpur", "Nashik"];

                populateOptions(districts, districtSelect);

            } else if (selectedState === "karnataka") {

                const districts = ["Bangalore", "Mysuru", "Hubli", "Mangalore"];

                populateOptions(districts, districtSelect);

            }

            // Add more states and districts as needed

        }


        function populateOptions(options, selectElement) {

            options.forEach(option => {

                const optionElement = document.createElement("option");

                optionElement.value = option.toLowerCase();

                optionElement.text = option;

                selectElement.appendChild(optionElement);

            });

        }


        function showResults() {

            const districtSelect = document.getElementById("district");

            const resultText = document.getElementById("resultText");

            const selectedDistrict = districtSelect.value;


            // Add your logic to fetch and display results based on the selected district

            resultText.textContent = `Results for ${selectedDistrict}`;


            // Show modal

            const modal = document.getElementById("resultModal");

            modal.style.display = "flex";

        }


        function closeModal() {

            const modal = document.getElementById("resultModal");

            modal.style.display = "none";

        }


        // Close modal if clicked outside the modal content

        window.onclick = function(event) {

            const modal = document.getElementById("resultModal");

            if (event.target === modal) {

                modal.style.display = "none";

            }

        };

    </script>


</body>

</html>


HTML Structure:

1. State and District Dropdowns:

   - The HTML includes two dropdowns: one for selecting the state (`<select id="state">`) and another for selecting the district (`<select id="district">`).

   - The state dropdown has hardcoded options for Maharashtra and Karnataka. You can add more states and their corresponding districts as needed.


2. Show Results Button:

   - A button (`<button onclick="showResults()">Show Results</button>`) triggers the `showResults` function when clicked.


3. Modal for Results:

   - There's a hidden modal (`<div class="modal" id="resultModal">`) that will display the results.

   - Inside the modal, there's a close button (`&times;`) and a content area (`<div class="modal-content">`) where the results will be displayed.


CSS Styles:

1. Basic Styling:

   - The CSS styles define the appearance of the page, dropdowns, button, and modal. It ensures a simple and responsive design.


JavaScript Functions:

1. populateDistricts` Function:

   - This function is called when the state dropdown changes.

   - It clears the previous options in the district dropdown and populates it based on the selected state.

   - The districts are hardcoded for Maharashtra and Karnataka. You should replace them with your actual data.


2. populateOptions` Function:

   - A helper function used by `populateDistricts` to populate options in a dropdown.


3. showResults` Function:

   - This function is called when the "Show Results" button is clicked.

   - It fetches the selected district and displays a simple text result in the modal content area.

   - You should replace the text result with your actual logic for fetching and displaying results.


4. closeModal` Function:

   - Closes the modal when called.


5. Window Click Event:

   - Closes the modal if the user clicks outside the modal content.

 Final Notes:

- The code provides a basic structure for dependent dropdowns and a modal for displaying results.

- You need to replace the hardcoded data with your actual data and implement the logic for fetching and displaying results in the `showResults` function.

- Customize the styling and layout according to your design preferences.

No comments:

Post a Comment

Share with your friends :)
Thank you for your valuable comment

Featured Post

Unique Bubbles – Colorful Bubble Popping Game for Android

ЁЯлз Unique Bubbles Pop. Match. Play. Repeat! A colorful bubble-popping adventure packed with fun! ЁЯОо PLAY NO...