2016-05-01 2 views
1

Я работаю над личным проектом, который позволит мне заносить в журнал все шотландские горы (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.

Любые предложения будут оценены.

+3

отладки: 'var_dump ($ _ POST);' –

+0

Ваши ценности форма передаются правильно в массиве. Чтобы получить $ _POST ['name'] [0] –

ответ

0

попробовать $_POST, чтобы увидеть список всех параметров, которые были переданы из формы

print_r($_POST) 

Напечатает полный массив значений

Смежные вопросы