Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.02.2017, 21:52
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Помогите с select options
Здравствуйте. Есть выборка из базы, помогите поставить атрибут selected в зависимости от результата выборки.
<?php
$result = $connection->query("SELECT names from my_base");
while ($row = mysqli_fetch_assoc($result)) {
$table .='
<table>
	<tr>		
		<td>
			<select class="names">
				<option value="Андрей">Андрей</option>
				<option value="Марина">Марина</option>
				<option value="Илона">Илона</option>
				<option value="Вероника">Вероника</option>
			</select>
		</td>
	</tr>	
</table>';
echo $table;
};	
?>
Ответить с цитированием
  #2 (permalink)  
Старый 21.02.2017, 21:54
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Например, если результат $row['names'] = Марина, тогда должно получиться <option value="Марина" selected>Марина</option>
Ответить с цитированием
  #3 (permalink)  
Старый 21.02.2017, 22:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Очень плохо конечно, что в базе это Андрей, Марина...., во-первых это не уникальные значения, во-вторых искать по строкам это накладно.

А чтобы отметить выбранную опцию, то список нужно выводить в цикле, сверяя полученное значение со значением опции списка.
Ответить с цитированием
  #4 (permalink)  
Старый 21.02.2017, 22:44
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Сообщение от laimas Посмотреть сообщение
сверяя полученное значение со значением опции списка.
Как это сделать?
Ответить с цитированием
  #5 (permalink)  
Старый 21.02.2017, 23:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну как, как написано было, в цикле. Но вот что делает ваш цикл и вообще зачем он нужен, если в нем просто выводится таблица? Что-то конкретно по такому коду (как сделать) сказать не возможно. Хотя бы "на пальцах" тогда пояснить что и чего где находится и как вывести, а иначе....
Ответить с цитированием
  #6 (permalink)  
Старый 21.02.2017, 23:57
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Придумал такое решение, знаю что смешное, но работает, если у кого-то будет лучше, пусть напишет
$table .='<table>';            
$x = 0;
while ($row = mysql_fetch_assoc($result)){
$x++;
$table .='
<script>
$( document ).ready(function() {
	$(N'.$x.').val("'.$row['names'].'");	
});
</script>
	<tr>		
		<td>
			<select class="names" id="N'.$x.'">	
				<option value=""></option>
				<option value="Андрей">Андрей</option>
				<option value="Марина">Марина</option>
				<option value="Илона">Илона</option>
				<option value="Вероника">Вероника</option>
			</select>
		</td>
	</tr>';
	
};
$table .='</table>';
echo $table;
Ответить с цитированием
  #7 (permalink)  
Старый 22.02.2017, 01:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Словами можно пояснить чего это такое, без кода, ибо он просто муть какая-то?

Я не знаю чего вы там выгребаете из базы и почему куча таблиц, поэтому не на этом примере, а дальше уж не знаю как.

1) Представленный список имен, значениями опций которого также имена, в базе по такому запросу "SELECT names from my_base" имеет право на существование только в том случае, если значения поля таблицы "names" принадлежат записям с уникальными значениями. Но при таком раскладе список может оказаться слишком большим по размеру (сотни Марин, Андреев, ...) и вряд ли кто-то станет в нем разбираться. А ввиду того, что имена есть значения не уникальные такой список теряет всякий смысл.

2) Предположим, что имена в выборке принадлежат уникальным записям, а по списку имен нужно будет во всех записях таблицы "my_base" найти записи у которых поле "names" содержит имя выбранное в списке. Но для этого список должен содержать только уникальные значения, то есть в нем не должно быть повторяющихся имен. Для запрос должен выбрать из таблицы только уникальные значения и должен выглядеть так:

$result = $connection->query("SELECT DISTINCT names FROM my_base");


3) Если поле формы не имеет имени, то оно не будет передано на север, то есть значения из списка <select class="names" id="N'.$x.'"> просто не будет. Поэтому назовем его "name" - <select class="names" name="name">. Предположим, что данный список уже был у клиента и он выбрал в нем некое имя отправив форму методом GET. По полученному GET запросу сервер произведет поиск в этой таблице, отдаст результат клиенту наряду со списком, полученный запросом как показано выше. Строя сам список будет проверять совпадения значения запроса и значения из базы:

$selected = isset($_GET['name']) ? $_GET['name'] : null; 
$select = '<select class="names" name="name"><option value="">Выберите имя...</option>';

while ($row = mysql_fetch_assoc($result)) $select .= '<option value="'.$row['names'].'" '.
        ($row['names']==$selected ? 'selected' : null).'>'.$row['names'].'</option>';

echo $select . '</select>';
Ответить с цитированием
  #8 (permalink)  
Старый 22.02.2017, 03:16
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Спасибо что пытаетесь мне помочь. На счет уникальности, код переделал, поэтому сейчас выбираются из базы уникальные ID, и в options value сейчас эти ID
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список select, помогите сделать. Monster123 Элементы интерфейса 20 11.01.2016 17:04
2-ой select грузит [object Object] помогите! espltd AJAX и COMET 0 05.08.2014 22:41
Помогите с зависящими select RevivaL Общие вопросы Javascript 10 15.12.2010 14:37
массив options для select (в IE) Polkan Internet Explorer 8 06.05.2010 17:31
Передача всех Options из Select (не только выбранных) dm1tr1y Общие вопросы Javascript 6 23.03.2009 18:51