我正在进行一个个人项目,该项目将允许我记录我走过的所有苏格兰山脉(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)
将打印值的完整数组