Как заполнить поле выбора из базы данных на основе выбора переключателя
Я искал повсюду и не могу найти правильный ответ на этот вопрос сегодня. Это кажется довольно обычной потребностью.
Я работаю на странице в php, которая имеет 3 взаимных переключателя. Когда вы нажимаете на один из них, мне нужно заполнить поле выбора другим набором данных из базы данных MS SQL Server.
Я знаю, как получить данные из базы данных. Я знаю, как настроить элементы формы. Я пробовал jquery, обычный javascript, другие случайные идеи. Все, что я делаю, не работает и даже не имеет смысла. Да, я знаю разницу между серверной и клиентской сторонами.
Список округов немного отличается в зависимости от того, какой переключатель выбирает пользователь. Очевидно, что я не хочу публиковать эту форму в данный момент. Предполагается, что пользователь должен заполнить некоторые другие параметры, включая выбор округов из поля multiselect.
Переключатели и выбор находятся в одной форме с некоторыми другими опциями, такими как выбор дат, которые пользователь должен заполнить перед нажатием кнопки Отправить.
Я совершенно застрял. Все мои онлайн - поиски предлагают решения других проблем, которые немного связаны, но не совсем там. Я знаю, как изменить значения поля выбора в javascript на основе того, какой переключатель нажат, но я должен получить округа из базы данных, а не жестко закодировать их в php-файл.
Я думаю, что, возможно, php-код, который получает данные, должен исходить из отдельного php-файла, и он называется с помощью ajax, но я не уверен, что нахожусь на правильном пути.
Что я уже пробовал:
Так что у меня есть свои 3 переключателя:
<td> <input type="radio" name="in_out" id="in_out" value="I"> In County<br> <input type="radio" name="in_out" id="in_out" value="O" checked> Out County<br> <input type="radio" name="in_out" id="in_out" value="B"> Both<br> </td>
Вот мой php код для заполнения поля выбора:
<select name="county_list" multiple size="10" style="width:120px" > <?php $in_out = 'B'; if ($in_out == 'I') { $db_query = "SELECT County FROM dbo.tblCounties WHERE InOut = 'I' AND DummyCounty = 0 ORDER BY County DESC"; } else if ($in_out == 'O') { $db_query = "SELECT County FROM dbo.tblCounties WHERE InOut = 'O' AND DummyCounty = 0 ORDER BY County DESC"; } else { $db_query = "SELECT County FROM dbo.tblCounties WHERE DummyCounty = 0 ORDER BY County DESC"; } try { $stmt = $pdo->prepare($db_query, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL)); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST); do { $county = $row[0]; echo '<option value="' . $county . '">' . $county . '</option>'; } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR)); $stmt = null; } catch (PDOException $e) { print $e->getMessage(); } ?> </select>
Mohibur Rashid
ваше имя базы данных dbo?
Во всяком случае, ваша проблема не очень хорошо сформулирована. И немного отличается от того, что ваша потребность звучит странно. вы должны быть в состоянии изменить предлагаемое решение в соответствии с вашими потребностями