我有一个html/php插入表单,其中一个条目需要修改。有问题的条目是“成员”。
为此,我有以下代码(归功于@
Joe Warner
)它可以在没有php的情况下进行测试
here
基本上我保存了
到一个php变量,然后打印它。它工作得很好。
echo $msgs; ?>
这应该是每个添加成员的一个字符串。
问题是我不能用其他字段(提交时每个字段都是推送的)进入MySQL。
似乎变量首先假定为空,然后才假定为空
getResults()
它会被填充。
我知道这很乱,但现在表格不能更改。
有什么小窍门吗?
const optionsSelect = [{
id: 1,
title: 'Mr'
},
{
id: 2,
title: 'Mrs'
}
];
function getResults() {
const { selects, inputs } = getInputs();
return selects.reduce((acc, select, i) => {
const { title, name } = getValuesFromElements(select, inputs[i]);
msgs = (title && name) ? `${acc} ${title}. ${name}` : acc;
document.getElementById("output").innerHTML = msgs;
return (title && name) ? `${acc} ${title}. ${name}` : acc;
}, '');
}
function getValuesFromElements(select, {value: name}) {
const { title } = optionsSelect[select.value - 1];
return {title, name};
}
function getContainerElements(query) {
return Array.from(document.querySelectorAll(`#container > ${query}`));
}
function getInputs() {
const selects = getContainerElements('select');
const inputs = getContainerElements('input');
return {
selects,
inputs
}
}
function addFields() {
const { value: number } = document.getElementById('member');
const container = document.getElementById('container');
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (let i = 0; i < number; i++) {
const select = document.createElement('select');
for (let j = 0; j < optionsSelect.length; j++) {
const options = document.createElement('option');
options.value = optionsSelect[j].id;
options.text = optionsSelect[j].title;
select.appendChild(options);
}
container.appendChild(select);
container.appendChild(document.createTextNode(' -> Name ' + (i + 1)));
const input = document.createElement('input');
input.type = 'text';
container.appendChild(input);
container.appendChild(document.createElement('br'));
}
}
Number of members: (max. 10)