фильтр — игнорировать пустые поля со списком при сохранении данных в SQL через переполнение стека

У меня есть форма с 4 наборами из 4 комбинированных списков, которые видны, когда сделаны разные выборы. Я хотел бы, чтобы 4 набора комбинированных списков помещали данные в 4 ячейки таблицы (по одной на каждый набор), игнорируя при этом остальные 3 пустых комбинированных списка.
Коробки выложены как показано ниже;

Lab set 1 - Sample Type 1 - Sample Type 2 - Sample Type 3 - Sample Type 4

Lab set 2 - Sample Type 5 - Sample Type 6 - Sample Type 7 - Sample Type 8

Lab set 3 - Sample Type 9 - Sample Type 10 - Sample Type 11 - Sample Type 12

Lab set 4 - Sample Type 13 - Sample Type 14 - Sample Type 15 - Sample Type 16

Только один выбор может быть сделан для каждой лабораторной установки в любое время, поэтому, если выбраны тип образца 1, тип образца 5, тип образца 11 и тип образца 12, остальные типы образцов будут иметь значение NULL.

Я хотел бы, чтобы в каждом лабораторном наборе была только одна ячейка таблицы, чтобы впоследствии было легче отобразить данные, можно ли игнорировать нулевые значения и заполнить ячейки лабораторного набора 1, 2, 3, 4 только выбранными ячейками данные или я пытаюсь сделать невозможное?

Вот моя попытка кодирования одного из списков со отключенным свойством и скрытой видимостью;

<select name="Lab1" id="Lab1" style="visibility:hidden;" onChange="if (this.value=='Alpha Bio Labs'){this.form['Samp1'].style.visibility='visible'}if (this.value=='Alpha Bio Labs'){this.form['Samp2'].style.visibility='hidden'}if (this.value=='Alpha Bio Labs'){this.form['Samp1'].prop.disabled='false'}if (this.value=='Alpha Bio Labs'){this.form['Samp2'].prop.disabled='true'}">
<option selected>Lab</option>
<option value="Alpha Bio Labs">Alpha Bio Labs</option>
<option value="Cellmark">Cellmark</option>
<option value="DNA Legal">DNA Legal</option>
<option value="The Doctors Lab">The Doctors Lab</option>
</select>

Кодировка onChange для видимости приведена ниже;

//visible
if (this.value=='Alpha Bio Labs'){this.form['Samp1'].style.visibility='visible'}
//hidden
if (this.value=='Alpha Bio Labs'){this.form['Samp2'].style.visibility='hidden'}

Я написал дополнительный набор функций, которые читаются следующим образом;

//Active
if (this.value=='Alpha Bio Labs'){this.form['Samp1'].prop.disabled='false'}
//Not Active
if (this.value=='Alpha Bio Labs'){this.form['Samp2'].prop.disabled='true'}

Приведенный выше код будет проходить вдоль видимого кода, так как я хочу, чтобы неактивные функции были невидимыми, а мои тесты показывают, что неактивные функции все еще будут видны.

Я наткнулся на некоторый Javascript онлайн и попытался привести его в соответствие, я поместил код ниже;

var visopt = document.getElementsById('Samp1');
for(var  strUser = visopt.options [visopt.selectedIndex] .style.visibility;) {
if(strUser.style.visibility='visible') {
visopt.disabled = true;
}
}

Я на правильном пути?

0

Решение

Я понял это, я просто добавляю секундную ссылку кода в функцию OnChange выбора Lab для каждого раздела, чтобы это читалось, как показано ниже;

onChange="if (this.value=='Alpha Bio Labs'){this.form['Samp1'].style.visibility='visible'}
if (this.value=='Alpha Bio Labs'){this.form['Samp1'].disabled=false}"

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

Спасибо @mickmackusa за вашу помощь на ранних этапах, она вывела меня на правильный путь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector