avianrand Ответов: 0

Как заполнить поле выбора из базы данных на основе выбора переключателя


Я искал повсюду и не могу найти правильный ответ на этот вопрос сегодня. Это кажется довольно обычной потребностью.

Я работаю на странице в 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?

Во всяком случае, ваша проблема не очень хорошо сформулирована. И немного отличается от того, что ваша потребность звучит странно. вы должны быть в состоянии изменить предлагаемое решение в соответствии с вашими потребностями

0 Ответов