beget banner 468x60beget banner 728x90beget banner 930x180skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180flexbe banner 468x60flexbe banner 728x90flexbe banner 930x180

Как заполнить элемент списком городов на основе выбранной страны с помощью jQuery

Заполнение элемента списком штатов или городов на основе значения параметра страны, выбранного пользователем в раскрывающемся списке, является очень распространенной реализацией Ajax-функции, которую вы видели на многих веб-сайтах при заполнении регистрационной формы. Вы можете легко сделать это с помощью jQuery-метода ajax() и любого серверного языка, например PHP.

Давайте посмотрим на следующий пример, чтобы понять, как это работает:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Populate City Dropdown Using jQuery Ajax</title>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function(){
    $("select.country").change(function(){
        var selectedCountry = $(".country option:selected").val();
        $.ajax({
            type: "POST",
            url: "process-request.php",
            data: { country : selectedCountry } 
        }).done(function(data){
            $("#response").html(data);
        });
    });
});
</script>
</head>
<body>
<form>
    <table>
        <tr>
            <td>
                <label>Страна:</label>
                <select class="country">
                    <option>Выбрать</option>
                    <option value="usa">Соединенные Штаты</option>
                    <option value="india">Индия</option>
                    <option value="uk">Великобритания</option>
                </select>
            </td>
            <td id="response">
                <!-- ответ от сервера будет вставлен здесь -->
            </td>
        </tr>
    </table>
</form>
</body> 
</html>

Приведенный выше jQuery-скрипт отправляет на сервер значение параметра, выбранного в раскрывающемся списке страны. Затем файл process-request.php на сервере обрабатывает запрос. Если запрос завершается успешно, jQuery-скрипт получает возвращенные данные и создает раскрывающийся список городов.

PHP-код внутри файла process-request.php будет выглядеть примерно так:

<?php
if(isset($_POST["country"])){
    // Получаем выбранную страну
    $country = $_POST["country"];
     
    // Определить массив страны и города
    $countryArr = array(
                    "usa" => array("New York", "Los Angeles", "California"),
                    "india" => array("Mumbai", "New Delhi", "Bangalore"),
                    "uk" => array("London", "Manchester", "Liverpool")
                );
     
    // Отображать раскрывающийся список города в зависимости от названия страны
    if($country !== 'Select'){
        echo "<label>Город:</label>";
        echo "<select>";
        foreach($countryArr[$country] as $value){
            echo "<option>". $value . "</option>";
        }
        echo "</select>";
    } 
}
?>

Мы создали простой массив PHP для хранения записей о стране и городе в демонстрационных целях. Однако в реальном сценарии вам необходимо хранить эти значения в базе данных.

flexbe banner 480x320flexbe banner 728x90flexbe banner 120x600etxt banner 480x320etxt banner 728x90etxt banner 120x600kwork banner 480x320kwork banner 728x90kwork banner 120x600

Читайте также

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как обновить страницу с помощью jQuery

Вы можете просто использовать JavaScript-метод location.reload() для обновления или перезагрузки страницы. Этот метод дополнительно принимает логический параметр true или false. Если указан параметр true, это вызывает постоянную перезагрузку страницы с сервера. Но, если установлен false (по умолчанию) или не указан, браузер может перезагрузить страницу из своего кеша. Давайте посмотрим на пример, чтобы понять, как работает…
Подробнее

Как изменить CSS-свойство display на none или block с помощью jQuery

Вы можете использовать jQuery-метод css(), чтобы изменить значение свойства CSS display на none, block или любое другое значение. Метод css() применяет правила стиля непосредственно к элементам, то есть к встроенным. Следующий пример изменит отображение элемента DIV при нажатии кнопки: В качестве альтернативы, если вы беспокоитесь о начальном значении свойства display элемента, но хотите переключаться между…
Подробнее

Как отображать и скрывать элементы div на основе раскрывающегося списка <select> в jQuery

В следующем примере показано, как отображать и скрывать элементы <div> на основе раскрывающегося списка или выбранного параметра в поле <select> с помощью jQuery-метода change() в сочетании с методами show() и hide(). Блоки <div> в этом примере по умолчанию скрыты с помощью CSS-свойства display, для которого установлено значение none.
Подробнее