Я работаю над личным проектом, который позволит мне заносить в журнал все шотландские горы (munros). Я ходил. Я часто бываю два, или 3 раза в день, поэтому мне нужна динамическая форма для управления количеством полей.Массив не отправляется с HTML на PHP
Я планировал хранить данные о горах в 4 массивах, название, высота, местоположение и ближайший город.
Когда я ввожу данные в форму, я затем нажимаю submit и пытаюсь отобразить имена на экране, чтобы проверить правильность работы формы.
Я не могу заставить массивы работать, хотя у меня есть другие элементы, которые отображаются успешно (например, дата похода).
Ниже 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. Я использую MAMP для Mac.
Любые предложения будут оценены.
отладки: 'var_dump ($ _ POST);' –
Ваши ценности форма передаются правильно в массиве. Чтобы получить $ _POST ['name'] [0] –