javascript - 如何使用ajax在同一页面中发送数组,然后使用循环将数据保存到数据库
问题描述
我有一个关于如何将数据表中选定行的数据保存到数据库的问题。
我已经可以根据数据表中的复选框获取 STAFF_ID。
现在,我正在尝试将数据以多行的形式保存到数据库中。
我只是php的初学者,不胜感激。这是我的代码:
<script>
$(document).ready(function() {
var table = $('#table_id').DataTable({
// 'ajax': '/lab/jquery-datatables-checkboxes/ids-arrays.txt',
'columnDefs': [{
'targets': 0,
'checkboxes': {
'selectRow': true
}
}],
'select': {
'style': 'multi'
},
'order': [
[1, 'asc']
]
});
// $('#table_id tbody').on( 'click', 'td input', function () {
// var checked = $(this).prop('checked');
// console.log(checked);
// });
// Handle form submission event
$('#generate_button').on('click', function(e) {
var array_staff_id = [];
$("input:checkbox[name=check]:checked").each(function() {
array_staff_id.push($(this).val());
});
alert(array_staff_id);
});
});
</script>
<div class="d-flex flex-column-fluid">
<!--begin::Container-->
<div class="container">
<!--begin::Card-->
<div class="card card-custom">
<div class="card-body">
<!-- <form method="post" action="" id="frm-example"> -->
<!--begin: Datatable-->
<table class="table table-separate table-head-custom table-checkable table-hover table_id" id="table_id">
<thead>
<tr>
<th></th>
<th>Name</th>
<th>Basic Salary</th>
<th>Other Allowances</th>
<th>Kwsp Conts</th>
<th>Socso Conts</th>
<th>Eis Conts</th>
<th>Zakat Conts</th>
<th>Income Tax Conts</th>
</tr>
</thead>
<tbody>
<?php
$s_infor = $cls_salary_info->list();
foreach ($s_infor as $s_level) {
// print_r($s_infor);
?>
<tr>
<td><input type="checkbox" class="check_id" name="check" value="<?= $s_level['STAFF_ID']; ?>"></td>
<td><?= $s_level['NAME']; ?></td>
<td><?= $s_level['BASIC']; ?></td>
<td><?= $s_level['OTHERS']; ?></td>
<td><?= $s_level['KWSP_COMP']; ?></td>
<td><?= $s_level['SOCSO_COMP']; ?></td>
<td><?= $s_level['EIS_COMP']; ?></td>
<td><?= $s_level['ZAKAT']; ?></td>
<td><?= $s_level['TAX']; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<!--end: Datatable-->
<br>
<div class="form-group">
<h4 class="form-section">Generate Payslip</h4>
<hr>
<div class="row">
<label for="exampleSelectd2" class="col-2 col-form-label">Year</label>
<div class="col-3">
<select class="form-control" id="id" name="YEAR">
<option>Select Year</option>
<?php
//get the current year
$Startyear = date('Y');
$endYear = $Startyear;
// set start and end year range i.e the start year
$yearArray = range($Startyear, $endYear);
?>
<!-- here you displaying the dropdown list -->
<!-- <option value="">Select Year</option> -->
<?php
foreach ($yearArray as $YEAR) {
// this allows you to select a particular year
$selected = ($year == $Startyear) ? 'selected' : '';
// $selected = ($YEAR == $Startyear) ? 'selected="selected"' : '';
echo '<option ' . $selected . ' value="' . $YEAR . '">' . $YEAR . '</option>';
}
?>
</select>
</div>
<label class="col-2 col-form-label">Select Month</label>
<div class="col-3">
<select class="form-control" name="DATE_ID" id="DATE_ID">
<option>Select Month</option>
<?php
$results = $cls_salary_date->listing();
foreach ($results as $data) {
if (isset($_POST['search'])) {
$id = $_POST['DATE_ID'];
} else {
$id = null;
}
if ($data['DATE_ID'] == $id) {
$sel_blok = 'Selected=\"selected\"';
} else {
$sel_blok = '';
}
?>
<option value="<?= $data['DATE_ID'] ?>" <?= $sel_blok ?>> <?= $data['DATE'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="form-actions text-center">
<button class="btn btn-primary float-md-right add_btn" id="generate_button">
<i class="fa fa-dot-circle-o"></i>Generate</button>
</div>
<!-- </form> -->
</div>
</div>
</div>
</div>
<br>
我想将复选框选择的行保存到数据库。
- 表:工资单
- 列:STAFF_ID、KWSP_STAFF、KWSP_COMP、SOCSO_STAFF、SOCSO_COMP
- 值(从数据表到数据库): ('','$KWSP_STAFF','$KWSP_COMP','$SOCSO_STAFF','$SOCSO_COMP')
解决方案
推荐阅读
- sql - sql: Select count(*) - 每组的第 n 条记录
- java - 单击导航抽屉的项目不会打开片段
- cassandra - Cassandra 返回数值的无序结果集
- css - 我怎样才能让这个封面看起来像一本书?
- java - 我应该预初始化在多个分支中被覆盖的变量吗?
- postgresql - LIKE 表达式未返回预期结果。问题还是缺乏理解?(可能是后者)
- html - 我遇到了 HTML 中的图像标签问题
- excel - 基于 Power Query OnEvent 的脚本
- php - 如何从每行不同列中的行中检索多个数据
- javascript - Javascript 从另一个站点加载字体