Так что предоставленный вами код JavaScript не работает. Тем не менее, следующие поправки заставляют его работать.
Я установил переменную rowCount, и colCount использует нулевой индекс, а не 1, так как вы пытаетесь получить длину ячейки для строки, которой не существует, следовательно, при создании нового элемента нет innerHTML. Если вам нужно было использовать [1], потому что у вас есть дополнительные строки в вашей фактической таблице, пожалуйста, покажите нам актуальный соответствующий код, чтобы мы могли помочь
<?php
var_dump($_POST);
?>
<!----index.html----->
<script>
function addRow(tableID){
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
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;
}
}
</script>
<form role="form" action="php_process.php" method="POST">
<table id="this_table">
<tr>
<td><input type="number" id="data_number" name="data_number[]"></td>
</tr>
</table>
<input type="button" value="Add" onclick="addRow('this_table');">
<button type="submit" name="btn_submit" value="1">Save</button>
</form>
Я проверял это, и оно работает