Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   выбор значений option равных переменным php, linkedselect, динамические списки (https://javascript.ru/forum/dom-window/71021-vybor-znachenijj-option-ravnykh-peremennym-php-linkedselect-dinamicheskie-spiski.html)

mightybat 19.10.2017 17:24

выбор значений option равных переменным php, linkedselect, динамические списки
 
Добрый день. У меня есть 3 динамических списка select, в бд сохраняются 3 значения. При создании страницы как возможно выбрать сохраненные в бд значения?Реализовать на php не получилось, знания синтаксиса js настолько слабые, что не смог загуглить свою проблему. Копирую текст файла linkedselect.js, через который эти списки формируются.
function syncList(){} 
syncList.prototype.sync = function()
{
	for (var i=0; i < arguments.length-1; i++)	document.getElementById(arguments[i]).onchange = (function (o,id1,id2){return function(){o._sync(id1,id2);};})(this, arguments[i], arguments[i+1]);
	document.getElementById(arguments[0]).onchange();syncList.prototype._sync = function (firstSelectId, secondSelectId)
{
	var firstSelect = document.getElementById(firstSelectId);
	var secondSelect = document.getElementById(secondSelectId);

	secondSelect.length = 0; 
	
	if (firstSelect.length>0)
	{
		
		var optionData = this.dataList[ firstSelect.options[firstSelect.selectedIndex==-1 ? 0 : firstSelect.selectedIndex].value ];
		
		for (var key in optionData || null) secondSelect.options[secondSelect.length] = new Option(optionData[key], key);
		
		
		if (firstSelect.selectedIndex == -1) setTimeout( function(){ firstSelect.options[0].selected = true;}, 1 );
		
		if (secondSelect.length>0) setTimeout( function(){ secondSelect.options[0].selected = true;}, 1 );
	}
	
	secondSelect.onchange && secondSelect.onchange();
};

Nexus 19.10.2017 17:35

Элементарная задача. Вот пример реализующий вам необходимое на стороне сервера.
Шаблонизатор "Smarty 3".
{$select_value=2}{*Сохраненное значение*}
{$select_options=[1=>'first',2=>'second']}{*Список опшенов*}
<select name="some_name">
{foreach $select_options as $item}
<option value="{$item@key}"{if $select_option==$item@key} selected{/if}>{$item}</option>
{/foreach}
</select>

Найдите код, который генерирует html-код вашего селекта и сделайте примерно также.

mightybat 19.10.2017 17:47

в 2 и далее уровне нет option. Выглядит примерно так
<select size="1" id="List6" name="code"></select><br />

Я предположил, что вас не понял, но весь js, который к этому относится -это строки выше и собственно сами списки. Мне около 17 строчки что-то подобное писать?


Часовой пояс GMT +3, время: 14:05.