У меня есть форма, которая имеет два поля выбора, один из которых представляет регион, а другой – название города / деревни / и т. Д. У меня есть база данных со всеми этими элементами в следующей форме:
id (int 11, ai) region (varchar 50) city(varchar 50)
Я нашел сценарий здесь, чтобы вы могли выбирать разные варианты, но это сделано с JS, и я не знаю, как адаптировать его к моим потребностям. Мне нужна база данных, потому что у меня 13.000+ записей, и это не очень хорошая идея ввести их вручную в код. Вот ссылка на тему, которую я прочитал, это решение находится в одном из комментариев.
как изменить параметры выбора на основе другого выбранного варианта выбора? ,
Пожалуйста, дайте мне знать, если мне нужно отредактировать мой пост перед тем, как опуститься. Заранее спасибо!
Просто используйте ajax для этого, когда один из них выбирает изменение, извлекает данные с сервера для подачи другого выбора.
<select class="select_one"> <?php /* render first select ?> </select> <select class="select_two"></select> <script> $(function() { $('.select_one').change(function() { var select = $('.select_two').empty(); $.get('script.php', {region: $(this).val()}, function(result) { $.each(result, function(i, item) { $('<option value="' + item.value + '">' + item.name + '</option>'). appendTo(select); }); }); }); }); </script>
и вы script.php
должны возвращать JSON из db:
if (isset($_GET['region'])) { $sql = new mysqli('localhost','username','password','database'); $region = mysqli_real_escape_string($sql,$_GET['region']); $query = "SELECT * FROM cities WHERE region = $region"; $ret = $sql->query($query); $result = array(); while ($row = $ret->fetch_assoc()) { $result[] = array( 'value' => $row['id'], 'name' => $row['city'] ); } echo json_encode($result); }