У меня есть таблица внутри формы, в которой я создаю новые строки, нажимая Enter. Для этого я использую функцию jquery. Однако мне нужно сохранить подсчет, который выполняется в функции jquery, и использовать его в HTML, чтобы проверить, сколько строк было создано в прошлый раз.
Мне это нужно по другой причине: когда я отправляю форму, она очищает все, включая строки таблицы, все они удаляются, кроме первой строки. Итак, если я могу сохранить подсчет в сеансе или в чем-то еще, я могу проверить, сколько из них было создано в прошлый раз, чтобы я мог создать такое количество при создании таблицы.
Вот мой jquery код:
<script type='text/javascript'>
$(document).on('keyup', '.lst', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
var i = $('table tr').length;
if (code == 13) {
html = '<tr>';
html += '<td>' + i + '</td>';
html += '<td><input type="text" placeholder="Serial no." class="inputs" name="serial_no[]' + i + '" value="<?php if (isset($_POST['serial_no'])) {echo htmlspecialchars($_POST['serial_no']);} ?>"/></td>';
html += '<td><input type="text" placeholder="IMEI" class="inputs lst" name="imei[]' + i + '" value="<?php if (isset($_POST['imei'])) {echo htmlspecialchars($_POST['imei']);} ?>"/></td>';
html += '</tr>';
$('table').append(html);
$(this).focus().select();
i++;
});
$(document).on('keydown', '.inputs', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
var index = $('.inputs').index(this) + 1;
$('.inputs').eq(index).focus();
event.preventDefault();
}
});
</script>
А вот HTML:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php foreach ($dev_type_results as $row) {
} ?>
<table id="ble_table" class="table table-bordered table-striped" cellspacing="0" width="100%">
<tr>
<th>No.</th>
<th>Serial no.</th>
<th>IMEI</th>
</tr>
<?php
if(!isset($_SESSION['count_rows']) || count($_SESSION['count_rows']) == 0) { ?>
<tr>
<td>1</td>
<td><input type="text" placeholder="Serial no." class="inputs" name="serial_no[]" value="<?php if (isset($_POST['serial_no']) && is_array($_POST['serial_no'])) {
$count =count($_POST['serial_no']);
for($i=0; $i<$count; $i++){
echo htmlentities($_POST['serial_no'][$i]);
}
} ?>" /></td>
<td><input type="text" placeholder="IMEI" class="inputs lst" name="imei[]" value="<?php if (isset($_POST['imei'])) {
echo htmlentities($_POST['imei']);
} ?>" /></td>
<?php } ?>
</tr> <?php
} else{
foreach($_SESSION['count_rows'] as $c) {
?>
<tr>
<td>1</td>
<td><input type="text" placeholder="Serial no." class="inputs" name="serial_no[]" value="<?php if (isset($_POST['serial_no']) && is_array($_POST['serial_no'])) {
$count =count($_POST['serial_no']);
for($i=0; $i<$count; $i++){
echo htmlentities($_POST['serial_no'][$i]);
}
} ?>" /></td>
<td><input type="text" placeholder="IMEI" class="inputs lst" name="imei[]" value="<?php if (isset($_POST['imei'])) {
echo htmlentities($_POST['imei']);
} ?>" /></td>
<?php } ?>
</tr>
</table>
</form>