数组未从HTML发送到PHP


Array not being sent from HTML to PHP

我正在进行一个个人项目,该项目将允许我记录我走过的所有苏格兰山脉(munros)。我经常一天走两到三步,所以我需要一个动态表单来控制字段的数量。

我计划将有关山脉的数据存储在4个阵列中,名称、高度、位置和最近的城镇。

当我在表单中输入数据时,我点击提交并尝试在屏幕上显示名称,以检查表单是否正常工作。

尽管我确实有其他元素被成功显示(例如徒步旅行的日期),但我似乎无法使阵列工作。

下面是html

<form name="munroForm" action="process.php" class="register" method="POST">
        <h1>Munro Data Entry Form</h1>
        <fieldset class="row1">
            <legend>Trip Date</legend>
            <p>
                <label>Date of Trip*</label>
                <input type="date" required name="date">
            </P>
        </fieldset> 
        <fieldset class="row1">
        <legend>Munro Details</legend>
           <table id="munroTable" class="form" border="1">
              <tbody>
                <tr>
                    <td><input type="checkbox" required="required" name="chk[]" checked="checked" /></td>
                    <td>
                        <label>Name *</label>
                        <input type="text" maxlength = "30" required="required" name="name[]">
                     </td>
                     <td>
                        <label>Height *</label>
                        <input type="text" maxlength = "5" required="required" name="height[]">
                     </td>
                     <td>
                        <label>Location</label>
                        <input type="text" maxlength = "20" name="location[]">
                     </td>
                     <td>
                        <label>Closest Town</label>
                        <input type="text" maxlength = "15" name="closest_town[]">
                     </td>
                </tr>
               </tbody>
            </table>
            <p> 
                <input type="button" value="Add Munro" onClick="addRow('munroTable')" /> 
                <input type="button" value="Remove Munro" onClick="deleteRow('munroTable')"  /> 
            </p>
            <div class="clear"></div>
        </fieldset>
        <input class="submit" type="submit" value="send" />

我尝试了各种不同的php命令来尝试显示输入的数据,例如

foreach ($_POST['name'] as $value) {
// Do something with each valid friend entry ...
if ($value) {
    echo $value."<br />";
}
}

我甚至试图显示数组的大小,看看它是否存储了正确的数据量。这总是返回0。

echo "Number of munros =".sizeof($name);

我不确定JavaScipt是否会干扰这一点,尽管我对此表示怀疑。但以防万一,我已经把它贴在了下面。

function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if(rowCount < 5){                           // limit the user from creating fields more than your limits
    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;
    }
}else{
     alert("Maximum 5 Munros");
}
}
function deleteRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
    var row = table.rows[i];
    var chkbox = row.cells[0].childNodes[0];
    if(null != chkbox && true == chkbox.checked) {
        if(rowCount <= 1) {                         // limit the user from removing all the fields
            alert("Cannot Remove all the Munros.");
            break;
        }
        table.deleteRow(i);
        rowCount--;
        i--;
    }
}
}

这是我第一次编写PHP,而不是对wordpress主题进行一些小的定制。我在mac上使用MAMP。

如有任何建议,我们将不胜感激。

尝试$_POST查看从表单传递的所有参数的列表

print_r($_POST)

将打印值的完整数组