У меня есть два списка DropDown, которые уже заполнены из базы данных. Если вы выберете значение в DropDownlist1 – Dropdownlist2 получит то же значение, которое было выбрано в Dropdownlist1.
Но код основан на корпусе коммутатора, а также параметры жестко закодированы! В будущем – многие варианты могут возникнуть, и это не сработает!
Так что я хочу, если вы выберете опцию в раскрывающемся списке 1 – параметр должен быть выбран в списке DropDown 2 на основе «value», а не «index» Like here
Любые указатели или помощь будут оценены! заранее спасибо
function showSelected(f) { var selNum = f.type1.selectedIndex; //var selText = f.type1.options[selNum].text switch (selNum) { case 1: document.getElementById('type2').selectedIndex= 2; break; case 2: document.getElementById('type2').selectedIndex = 8; break; case 3: document.getElementById('type2').selectedIndex = 3; break; case 4: document.getElementById('type2').selectedIndex = 1; break; case 5: document.getElementById('type2').selectedIndex = 4; break; case 6: document.getElementById('type2').selectedIndex = 2; break; case 7: document.getElementById('type2').selectedIndex = 2; break; case 8: document.getElementById('type2').selectedIndex = 7; break; } } <select name="Type1" id="Type1" onchange="showSelected(this.form)" > <option>Select Option</option> <option value="<?php echo $record->getID();?>" > <?php echo $record->getIDName();?> </option> </select> <select name="Type2" id="Type2" disabled> <option>Select Option</option> <option value="<?php echo $record->getID();?>" ><?php echo $record->getIDValue();?> </option> </select>
function selectoption() { var list = document.getElementById('list'); var listtwo = document.getElementById('listtwo'); var searchtext = list.options[list.selectedIndex].text; for(var i = 0; i < listtwo.options.length; ++i) if (listtwo.options[i].text === searchtext) listtwo.options[i].selected = true; }
Когда вы печатаете все опции в полях выбора, вы можете указать идентификаторы параметров, связанные с их индексом в массиве:
<select id='first_combo_box' onchange='selected(this);'> <?php foreach( $arrayOfOptions as $index => $option ): ?> <option value='<?php echo $option?>' id='first_combo_index_<?php echo $index?>'><?php echo $option ?></option> <?php endforeach; ?> </select> <select id='second_combo_box' onchange='selected(this);'> <?php foreach( $arrayOfOptions as $index => $option ): ?> <option value='<?php echo $option?>' id='second_combo_index_<?php echo $index?>'><?php echo $option ?></option> <?php endforeach; ?> </select>
И затем в вашем javascript:
function selected(selectElt) { var index = selectElt.selectedIndex; document.getElementById('first_combo_index_' + index).selected = true; document.getElementById('second_combo_index_' + index).selected = true; }
Было бы довольно легко разобрать, какой элемент «select» вы отправляете в функцию, так что вы изменяете только выбранный параметр элемента OTHER, но уже поздно, и я устал, поэтому я оставлю это вы 🙂