Надеюсь, что кто-то может помочь с этим, смотрю на это с выходных.
У меня есть форма, которая содержит 3 поля (Имя, Электронная почта, Квартал) и таблицу с несколькими вопросами (я сократил код до 2 вопросов в целях иллюстрации.
Я хочу, чтобы 3 поля (Имя, Электронная почта, Номер) были записаны в базу данных с вопросом 1 в строке 1 и с вопросом 2 в строке 2.
Проблема в том, что мой код записывает только 3 поля (имя, адрес электронной почты, номер) в строку 1 (вопрос 1) и записывает пробелы в строку 2 для 3 полей (имя, адрес электронной почты, номер), поля таблицы записываются успешно. Что я делаю неправильно?
Просмотр базы данных
Имя Адрес электронной почты KPICode Ответ Соответствует Комментарии
Джо Джо@test.com 555 к21 да да тест
554 к45 нет нет теста
HTML-код:
<div class="item form-group">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="hfname">Name</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="text" id="name" name="name[]" class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Email:</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<Select type="email" id="email" name="email[]" class="form-control col-md-7 col-xs-12"></select>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="quarter">Quarter:</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<select id="quarter" name="quarter[]" class="form-control">
<option>Choose option</option>
<option>Q1</option>
<option>Q2</option>
<option>Q3</option>
<option>Q4</option>
</select>
</div>
</div>
</div>
<table class="table table-bordered">
<thead class="headings">
<tr>
<th>Code</th>
<th>Category</th>
<th>Performance Indicator</th>
<th>Response</th>
<th>Compliance</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td id="env1" name ="code[]" type="text" scope="row">ENV1</td>
<td>1.1 KPI</td>
<td>KPI Description.</td>
<td><select id="response" name="response[]">
<option>Yes</option>
<option>No</option>
</select>
</td>
<td><select id="Compliance" name="compliance[]">
<option>Compliant</option>
<option>Partially Compliant</option>
<option>Non-Compliant</option>
</select></td>
<td><input id="notes" name="notes[]" role="row" Type="text"></td>
</tr>
<tr>
<th id="env2" name="code[]" scope="row">ENV2</th>
<td>1.2 KPI</td>
<td>KPI Description.</td>
<td><select id="response" name="response[]">
<option>Yes</option>
<option>No</option>
</select>
</td>
<td><select id="Compliance" name="compliance[]">
<option>Compliant</option>
<option>Partially Compliant</option>
<option>Non-Compliant</option>
</select></td>
<td><input id="notes" name="notes[]" role="row" Type="text"></td>
</tr>
</tbody>
</table>
Мой PHP-код для записи информации в БД:
foreach($_POST['response'] as $index => $val)
{
$response = $val;
$rfname = $_POST['name'][$index];
$HospitalName = $_POST['email'][$index];
$quarter = $_POST['quarter'][$index];
$kpicode = $_POST['code'][$index];
$compliance = $_POST['compliance'][$index];
$notes = $_POST['notes'][$index];
$sql = "INSERT INTO InfoForm (Name, Email, Quarter, KPICode, Response,
Compliance, Notes)
VALUES ('$name', '$email', '$quarter', '$kpicode', '$response',
'$compliance', '$notes')";
$result = mysqli_query($conn, $sql);
}
Задача ещё не решена.
Других решений пока нет …