Viewing file: editCourse.php (14.75 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<div id="modalDel" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header flex-column">
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button>
<div class="icon-box">
<i class="bi-x-circle" style="color:red; font-size:70px;"></i>
</div><br />
<h4 class="modal-title text-center">Are you sure?</h4>
</div>
<div class="modal-body text-center">
<p>ต้องการลบข้อมูลนี้ใช่หรือไม่</p>
<form method="post" name="delForm" id="delForm">
<input type="hidden" name="crsId" id="crsId" />
<input type="hidden" name="action" value="deleteCrs" />
</form>
</div>
<div class="modal-footer justify-content-center">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="button" id="btnConfirmDel" class="btn btn-danger">Delete</button>
</div>
</div>
</div>
</div>
<div class="modal" id="editCourse" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">แก้ไขข้อมูล</h5>
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="container">
<form method="post" name="editCourseForm" id="editCourseForm" action="javascript:updateCrs();" class="row g-3 needs-validation" novalidate>
<input type="hidden" class="form-control" name="crsId" id="crsId" required />
<input type="hidden" name="action" value="updateCrs" />
<div class="col-md-6">
<div class="input-group">
<label for="inputGroup01" class="input-group-text">รหัสวิชา (ไทย)</label>
<input type="text" class="form-control" name="crsCode" id="crsCode" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="inputGroup02" class="input-group-text">รหัสวิชา (อังกฤษ)</label>
<input type="text" class="form-control" name="crsCodeE" id="crsCodeE" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="inputGroup01" class="input-group-text">ชื่อรายวิชา (ไทย)</label>
<input type="text" class="form-control" name="crsName" id="crsName" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="inputGroup02" class="input-group-text">ชื่อรายวิชา (อังกฤษ)</label>
<input type="text" class="form-control" name="crsNameE" id="crsNameE" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="inputGroup04" class="input-group-text">ชื่อย่อรายวิชา (ไทย)</label>
<input type="text" class="form-control" name="crsAbbr" id="curNameAbbrT" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="inputGroup05" class="input-group-text">ชื่อย่อรายวิชา (อังกฤษ)</label>
<input type="text" class="form-control" name="crsAbbrE" id="curNameAbbrE" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-3">
<div class="input-group">
<label for="inputGroup01" class="input-group-text">จำนวนหน่วยกิตรวม</label>
<input type="number" class="form-control" name="crsCreditTotal" id="crsCode" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-3">
<div class="input-group">
<label for="inputGroup02" class="input-group-text">ชั่วโมงทฤษฎี</label>
<input type="number" class="form-control" name="crsCredit1" id="crsCredit1" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-3">
<div class="input-group">
<label for="inputGroup01" class="input-group-text">ชั่วโมงปฏิบัติ</label>
<input type="number" class="form-control" name="crsCredit2" id="crsCredit2" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-3">
<div class="input-group">
<label for="inputGroup02" class="input-group-text">ชั่วโมงศึกษาด้วยตัวเอง</label>
<input type="number" class="form-control" name="crsPeriod3" id="crsPeriod3" required />
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-12">
<div class="input-group">
<label for="inputGroupSelect01" class="input-group-text">หมวดวิชา</label>
<select class="form-select" name="crsCdId" id="crsCdId" required>
<option selected disabled value="">-- เลือก --</option>
<?php
$sql = "SELECT * FROM rg_Condition";
$link->query($sql);
while ($data = $link->getnext()) {
echo "<option value='" . $data->cdId . "'>" . $data->cdName . " " . $data->cdNameE . "</option>";
}
?>
</select>
<div class="invalid-feedback">
กรุณากรอกข้อมูลให้ถูกต้อง
</div>
</div>
</div>
<div class="col-md-12" style="text-align: center;">
<button type="submit" id="btnUpdateSubmit" class="btn btn-primary">Update</button>
<!--<button type="submit" class="btn btn-primary">Save</button>-->
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<!--<button type="submit" id="btnUpdateSubmit" class="btn btn-primary">Save</button>-->
</div>
</div>
</div>
</div>
<div class="container">
<p class="fs-3">แก้ไขข้อมูลรายวิชา</p>
<table id="courseList" class="table table-striped display" style="width:100%">
<thead>
<tr>
<th>No.</th>
<th>รหัสวิชา (ไทย)</th>
<th>รหัสวิชา (อังกฤษ)</th>
<th>ชื่อวิชา (ไทย)</th>
<th>ชื่อวิชา (อังกฤษ)</th>
<th>หน่วยกิต</th>
<th>ดำเนินการ</th>
</tr>
</thead>
<tfoot>
<tr>
<th>No.</th>
<th>รหัสวิชา (ไทย)</th>
<th>รหัสวิชา (อังกฤษ)</th>
<th>ชื่อวิชา (ไทย)</th>
<th>ชื่อวิชา (อังกฤษ)</th>
<th>หน่วยกิต</th>
<th>ดำเนินการ</th>
</tr>
</tfoot>
</table>
</div>
<!-- Bootstrap JS -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.12.1/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.12.1/js/dataTables.bootstrap5.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script>
$(document).ready(function() {
getDataAll();
get();
delCrs();
$('#crsCdId').select2({
dropdownParent: $('#editCourse'),
theme: "bootstrap-5",
width: $(this).data('width') ? $(this).data('width') : $(this).hasClass('w-100') ? '100%' : 'style',
placeholder: $(this).data('placeholder'),
});
$(document).delegate("[data-target='#modalDel']", "click", function() {
$("#delForm [name=\"crsId\"]").val($(this).attr('data-id'));
})
});
function getDataAll() {
$('#courseList').DataTable({
processing: true,
ajax: {
url: "api/course.php",
data: {
action: "getCrsAll"
},
dataSrc: 'data'
},
columnDefs: [{
targets: [6],
className: 'text-center'
},
{
"width": "15%",
"targets": 6
}
],
columns: [{
data: "No"
},
{
data: "crsCode"
},
{
data: "crsCodeE"
},
{
data: "crsName"
},
{
data: "crsNameE"
},
{
data: "crsUnit"
},
{
data: "opt"
},
],
});
}
function get() {
$(document).delegate("[data-target='#editCourse']", "click", function() {
var crsId = $(this).attr('data-id');
// Ajax config
$.ajax({
type: "GET", //we are using GET method to get data from server side
url: './api/course.php', // get the route value
data: {
crsId: crsId,
action: "getCrsById"
}, //set data
beforeSend: function() { //We add this before send to disable the button once we submit it so that we prevent the multiple click
},
success: function(response) { //once the request successfully process to the server side it will return result here
response = JSON.parse(response);
$("#editCourseForm [name=\"crsId\"]").val(response.crsId);
$("#editCourseForm [name=\"crsCode\"]").val(response.crsCode);
$("#editCourseForm [name=\"crsCodeE\"]").val(response.crsCodeE);
$("#editCourseForm [name=\"crsName\"]").val(response.crsName);
$("#editCourseForm [name=\"crsNameE\"]").val(response.crsNameE);
$("#editCourseForm [name=\"crsAbbr\"]").val(response.crsAbbr);
$("#editCourseForm [name=\"crsAbbrE\"]").val(response.crsAbbrE);
$("#editCourseForm [name=\"crsCreditTotal\"]").val(response.crsCreditTotal);
$("#editCourseForm [name=\"crsCredit1\"]").val(response.crsCredit1);
$("#editCourseForm [name=\"crsCredit2\"]").val(response.crsCredit2);
$("#editCourseForm [name=\"crsPeriod3\"]").val(response.crsPeriod3);
//$("#editCourseForm [name=\"crsCdId\"]").val(response.crsCdId);
$("#crsCdId").val(response.crsCdId).trigger('change');
}
});
});
}
function updateCrs() {
var $this = $("#btnUpdateSubmit"); //submit button selector using ID
var $caption = $this.html(); // We store the html content of the submit button
var form = "#editCourseForm"; //defined the #form ID
var formData = $(form).serializeArray(); //serialize the form into array
//var route = $(form).attr('action'); //get the route using attribute action
var route = "./api/course.php";
// Ajax config
$.ajax({
type: "POST", //we are using POST method to submit the data to the server side
url: route, // get the route value
data: formData, // our serialized array data for server side
beforeSend: function() { //We add this before send to disable the button once we submit it so that we prevent the multiple click
$this.attr('disabled', true).html("Processing...");
},
success: function(response) { //once the request successfully process to the server side it will return result here
$this.attr('disabled', false).html($caption);
// Reload lists of employees
//getDataAll();
//window.location.href='./?page=editCurriculum';
//$('#courseList').DataTable().ajax.reload();
$('#courseList').DataTable().destroy();
getDataAll();
// We will display the result using alert
alert(response);
// Reset form
//resetForm(form);
// Close modal
$(".modal-backdrop").remove();
$('#editCourse').modal().toggle();
},
});
}
function delCrs() {
$("#btnConfirmDel").on("click", function() {
var $this = $(this); //submit button selector using ID
var $caption = $this.html(); // We store the html content of the submit button
var form = "#delForm"; //defined the #form ID
var formData = $(form).serializeArray(); //serialize the form into array
//var route = $(form).attr('action'); //get the route using attribute action
var route = "./api/course.php";
// Ajax config
$.ajax({
type: "POST", //we are using POST method to submit the data to the server side
url: route, // get the route value
data: formData, // our serialized array data for server side
beforeSend: function() { //We add this before send to disable the button once we submit it so that we prevent the multiple click
$this.attr('disabled', true).html("Processing...");
},
success: function(response) { //once the request successfully process to the server side it will return result here
$this.attr('disabled', false).html($caption);
// Reload lists of employees
$('#courseList').DataTable().destroy();
getDataAll();
// We will display the result using alert
alert(response);
// Reset form
//resetForm(form);
// Close modal
$(".modal-backdrop").remove();
$('#modalDel').modal().toggle();
},
});
});
}
(() => {
'use strict'
// Fetch all the forms we want to apply custom Bootstrap validation styles to
const forms = document.querySelectorAll('.needs-validation')
// Loop over them and prevent submission
Array.from(forms).forEach(form => {
form.addEventListener('submit', event => {
if (!form.checkValidity()) {
event.preventDefault()
event.stopPropagation()
}
form.classList.add('was-validated')
}, false)
})
})()
</script>
|