Javascript 使用PHP读取动态下拉菜单中的值

Javascript 使用PHP读取动态下拉菜单中的值,javascript,php,html,dynamic,Javascript,Php,Html,Dynamic,我正在使用Javascript函数,以便用户可以动态创建一些html控件,例如,每当他需要添加文本字段时,他可以调用此函数,该函数可用于创建这些动态控件,包括文本字段、下拉菜单和单选按钮,我在代码中将它们视为数组 在用户动态创建此控件之后;他使用它们来输入值,我正在编写一个php代码来读取数组值,以便稍后将它们插入MySQL DB,但我使用的php代码只能读取数组中第一个下拉列表的值,无法读取其余值,尽管同一代码可以很好地处理文本字段和单选按钮: HYG每当用户调用JS函数时,为文本字段下拉菜单

我正在使用Javascript函数,以便用户可以动态创建一些html控件,例如,每当他需要添加文本字段时,他可以调用此函数,该函数可用于创建这些动态控件,包括文本字段、下拉菜单和单选按钮,我在代码中将它们视为数组

在用户动态创建此控件之后;他使用它们来输入值,我正在编写一个php代码来读取数组值,以便稍后将它们插入MySQL DB,但我使用的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>

谢谢

您不应该只需要一个值而不是一个数组吗?我认为您不想检索所有选项:-不能同时是孩子和配偶:JS函数创建多个文本字段和多个下拉列表,因此每个下拉列表都有相同的值,对应于不同的文本字段名称,例如,用户将创建两个文本字段名称和两个下拉列表关系,将在第一个文本字段中输入他的名字,选择丈夫,然后在第二个文本字段中输入妻子的名字,并从相应的下拉列表中选择妻子,然后提交表单,该表单将调用php代码在DBSo中输入这些值。您可以将其想象为一个相同控件的数组,该数组可以很好地处理文本字段,但不适用于下拉列表,我认为这与下拉列表本身包含一个值数组这一事实有关,也许我需要使用某种多维数组或其他东西,我不知道!