Игнорировать пустые поля со списком при сохранении данных в SQL через PHP - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть форма с 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;
    }
}

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

1 Ответ

0 голосов
/ 07 ноября 2018

Я понял, я просто добавляю вторую ссылку кода в функцию 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, за вашу помощь на ранних этапах, она вывела меня на правильный путь.

...