два зависимые селекта

536
29 сентября 2018, 21:10

Нужно чтобы значение из сountry передавалось в region ... WHERE id= ?
Но я в AJAXe не силен ) может кто подскажет решение этой задачи.

<select name="country">
    <option value="0">Україна</option>
    <option value="1">Беларусь</option>
    <option value="2">U.S.A</option>
</select>
<?
$region = DB :: $dbs -> query("SELECT * FROM `region`");
while($region = $regions->fetch()) {
?>
<select name="region">
    <option value="<?=$regions['id']?>"><?=$regions['name']?></option>
</select>
<?}?>
Answer 1

Вообще я уже отвечал, недавно, на подобные вопросы по ajax и select, достаточно было полистать 1-2 странички, но можно собрать все в кучу:

Есть html:

<html>
<head></head>
<body>
    <select id="country" name="country">
    <option selected disabled>Выберете Страну</option>
    <option value="0">Україна</option>
    <option value="1">Беларусь</option>
    </select>
    <select id="region" name="region" style="display: none;">
    </select>
    <!-- JS -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
    </script>
    <script type="text/javascript">
        $('#country').change(function(){
            var val = $(this).val();
            $('#region').show();
            $('#region').html('');
            $.ajax({
            type: 'POST',
            url: 'ajax.php',
            data: {'country': val},
            success: function(data) {
                var obj = JSON.parse(data);
                $.each(obj, function( index, value ) {
                  $('#region').append($("<option></option>").attr("value",value).text(index));
                });
            }
            });
        });
    </script>
</body>
</html>

Как видно, он делает запрос на ajax.php, собсна сам файл для вашего случая:

<?php
$hostname = "localhost"; 
$username = "root"; 
$password = ""; 
$dbName = ""; 
$COUNTRY = $_POST['country'];
if (isset($COUNTRY) && !empty($COUNTRY)) {
    try {
        $dbh = new PDO("mysql:host=$hostname;dbname=$dbName", $username, $password);
    } catch (PDOException $e) {
        print "Error!: " . $e->getMessage() . "<br/>";
        die();
    }
    $sql = 'SELECT id, name FROM region WHERE id=:country';
    $sth = $dbh->prepare($sql);
    $sth->execute(array(':country' => $COUNTRY));
    $DB = $sth->fetchAll();
    echo json_encode(array_column($DB, 'id', 'name'));
} else {
    echo '[]';
}
READ ALSO
Правильный редирект laravel

Правильный редирект laravel

Всем привет! Пишу сейчас опрос в котором представим 5 вопросов, ссылка генерируется контроллером(стягиваются вопросы по выбранному опросу...

191
Как установить фон в ячейку QGridLayout?

Как установить фон в ячейку QGridLayout?

Необходимо в определенные ячейки QGridLayout установить фон, как это можно сделать?

153
Слайдовая анимация

Слайдовая анимация

Как сделать слайдовую анимацию (как на стандартном рабочем экране андроид) при помощи gtkmm? Имеются 2 разные картинки одинакового размера,...

202
IOVideoDevice: sendSingleNotification

IOVideoDevice: sendSingleNotification

Не могу найти какие-либо примеры использования данной функцииВ оф

149