У меня есть HTML-форма, которая позволяет пользователю добавлять строки ad hoc, используя JavaScript.
Форма:
<form method="post" action="send.php">
<table id="table">
<tr><th>job</th><th>comment</th></tr>
<tr>
<td><textarea name = "job[]"></textarea></td>
<td><textarea name = "comment[]"></textarea></td>
<tr>
</table>
<input type ="button" value="add entry" onclick="add('table')"/>
<input type ="submit" id="submit" value="submit"/>
JavaScript:
function add(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);
var newentry = document.createElement('textarea');
newentry.type = "text";
newcell.appendChild(newentry);
}
}
код PHP
$job = $_POST['job'];
$comment = $_POST['comment'];
//code to connect to database
$add_stmt = $mysqli->prepare("INSERT INTO job (job, comment) VALUES (?, ?)");
$foreach($job as $a => $b) {
$add_stmt->bind_param("ss", $job[$a], $comment[$a]);
$add_stmt->execute();
}
Когда я нажимаю на кнопку «Добавить запись», строка будет успешно создана. Однако только данные в первом ряду будут представлены в базу данных. Использование
echo "row count is" . count($_POST['job']);
Я получил "количество строк 1", хотя у меня есть несколько строк данных.
Может кто-нибудь выяснить, что могло пойти не так с моим кодом? Большое спасибо!