我正在使用Javascript函数,以便用户可以动态创建一些html控件,例如每当他需要添加一个他可以调用此函数的文本字段时,该函数可用于创建这些动态控件,包括文本字段,下拉菜单和单选按钮,我在代码中将它们视为数组
用户动态创建此控件后;他使用它们输入值,我正在编写一个PHP代码来读取数组值,以便稍后将它们插入到MySQL数据库中,但我使用的php代码只能读取数组中第一个下拉列表的值,并且可以&尽管相同的代码在文本字段和单选按钮上工作正常,但仍然会读取其余值:
HYG每当用户调用JS函数时,为文本字段下拉菜单插入的HTML代码:
<input type="text" name="APersonName[]" value="" placeholder="Full Name" />
<select name="APersonRelation[]" size="1">
<option selected=selected value="Relationship">Relationship</option>
<option value="Spouse">Spouse</option>
<option value="Friend">Friend</option>
<option value="Parent">Parent</option>
<option value="Child">Child</option>
</select>
和HYG我用来读取文本字段和下拉菜单(选择输入类型)的PHP代码
对于文本字段,它可以工作:
$name = implode(",", $_POST["APersonName"]);
echo $name . "<P>";
对于下降,它不起作用:
$relation = implode(",", $_POST["APersonRelation"]);
echo $relation . "<P>";
在我将其作为数组处理时,如果下拉菜单的值以其他方式引用,我是否遗漏了有关下拉菜单的内容?
添加创建动态控件的JS函数:
<script type="text/javascript">
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if (rowCount < 5) {
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for (var i = 0; i < colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
var clonedChildren = newcell.children;
var childTable = newcell.getElementsByTagName("TABLE")[0];
for (var i = 0; i < childTable.rows.length; i++) {
var colCnt = childTable.rows[i].cells.length;
for (var j = 0; j < colCnt; j++) {
var children = childTable.rows[i].cells[j].children;
for (var k = 0; k < children.length; k++) {
if (children[k].tagName == 'SELECT') {
children[k].name = "Row" + rowCount + children[k].name;
} else if (children[k].tagName == 'INPUT') {
if (children[k].type == "radio") {
children[k].name = "Gala[" + rowCount + "]";
}
}
}
}
}
}
} else {
alert("Please submit the form.");
}
}
</script>
由于