Я построил форму. Я поместил кнопку внутри этой формы под названием «Добавить книгу». Когда пользователь нажимает два поля, появляются: «bookname» и «bookdate»:
<div class="form-group col-md-3">
<a class="btn btn-success" onclick="add()" href="#">
<i class="glyphicon glyphicon-plus icon-white"></i>Add a book
</a>
</div>
<div id="wrapper">
<!-- champs du formulaire -->
<div class="form-group col-md-12" id="add" style="display:none;">
<!-- Bookname -->
<div class="form-row">
<div class="form-group col-md-3">
<label for="exampleInputPassword1">Name of book</label>
<input type="text" class="form-control" id="bookname" name="bookname">
</div>
</div>
<!-- Bookdate -->
<div class="form-row">
<div class="form-group col-md-3">
<label for="exampleInputPassword1">Date of book</label>
<input type="text" class="form-control" id="bookdate" name="bookdate">
</div>
</div>
</div>
</div>
Когда есть только одна книга, нет проблем с проверкой формы и записью «bookname» и «bookdate» в базу данных проекта. Это очень распространено.
Мой вопрос: например, если пользователь нажимает 3 раза на кнопку «добавить книгу» и 3 раза заполняет поля «имя книги» и «bookdate», как я могу сделать это в коде, чтобы сохранить все это в трех разных строках в база данных ?
То есть:
название книги
имя1 дата1
имя2 дата2
имя3 дата3
Я не понимаю, как я мог сделать?
Любая помощь будет принята с благодарностью.
Спасибо !
Вам нужно изменить атрибут имени на вашем bookname
а также bookdate
входные данные для обозначения массива, т.е.
<input type="text" class="form-control" id="bookname" name="bookname[]">
<input type="text" class="form-control" id="bookdate" name="bookdate[]">
Затем в своем PHP-коде вы обнаружите, что $_POST['bookname']
а также $_POST['bookdate']
теперь это массивы значений, так что вы можете перебирать их, например,
foreach ($_POST['bookname'] as $k => $bookname) {
$bookdate = $_POST['bookdate'][$k];
// write bookname and bookdate to database
...
}
Других решений пока нет …