|
|
|
จะแก้ไขข้อมูลในตารางหลายrecordพร้อมกันโดยใช้submitปุ่มเดียว แต่มันแก้ไขแค่recordสุดท้ายครับ ขอบคุณครับ มือใหม่ครับ |
|
|
|
|
|
|
|
รบกวนพี่ๆหน่อยนะครับ ขอบคุณครับ
อันนี้ตารางครับ
Code (PHP)
<table id="example" class="display responsive-table ">
<thead>
<tr>
<th width="30">#</th>
<th width="30">id</th>
<th width="100">Date</th>
<th width="280"><i class="material-icons prefix">account_circle</i>Employe Name</th>
<th width="100">leavetype</th> <th width="50">hours</th>
<th width="80">From</th>
<th width="80">To</th>
<th width="50">Shift</th>
<th width="150">Remark</th>
<th width="30"></th>
</tr>
</thead>
<tbody>
<?php
$eid = $_SESSION['emplogin'];
$sql = "SELECT * from tblleaves where HLine=:eid";
$query = $dbh->prepare($sql);
$query->bindParam(':eid', $eid, PDO::PARAM_STR);
$query->execute();
$results = $query->fetchAll(PDO::FETCH_OBJ);
$cnt = 1;
if ($query->rowCount() > 0) {
foreach ($results as $result) { ?>
<tr>
<td> <b><?php echo htmlentities($cnt); ?></b></td>
<td><input value="<?php echo htmlentities($result->id); ?>" id="aid" name="aid" class="form-control" type="text" readonly required></td>
<td><?php echo htmlentities($result->PostingDate); ?></td>
<td><input value="<?php echo htmlentities($result->Ename); ?>" id="emname" name="emname" class="form-control" type="text" readonly required></td>
<td><select name="leavetype" class="form-select" aria-label="Default select example">
<option value="<?php echo htmlentities($result->LeaveType); ?>"><?php echo htmlentities($result->LeaveType); ?></option>
<option value="ลาป่วย">ลาป่วย</option>
<option value="ลากิจ">ลากิจ</option>
<option value="ลาพักร้อน">ลาพักร้อน</option>
<option value="ลากิจพิเศษ">ลากิจพิเศษ</option>
<option value="ลาอุปสมบท">ลาอุปสมบท</option>
<option value="ลาคลอด">ลาคลอด</option>
</select></td>
<td><select name="hours" class="form-select" aria-label="Default select example">
<option value="<?php echo htmlentities($result->hours); ?>"><?php echo htmlentities($result->hours); ?></option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select></td>
<td><input value="<?php echo htmlentities($result->FromDate); ?>" id="mask1" name="fromdate" class="form-control" type="time" required></td>
<td><input value="<?php echo htmlentities($result->ToDate); ?>" id="mask2" name="todate" class="form-control" type="time" required></td>
<td><select name="shift" class="form-select" aria-label="Default select example">
<option value="<?php echo htmlentities($result->Shift); ?>"><?php echo htmlentities($result->Shift); ?></option>
<option value="A">A</option>
<option value="B">B</option>
</select></td>
<td><input id="remark" name="remark" type="text" value="<?php echo htmlentities($result->Remark); ?>" autocomplete="off" required></td>
<td><a href="View_attendance.php?del=<?php echo htmlentities($result->id); ?>" onclick="return confirm('Do you want to Cancel');">Cancel</a> </td>
<?php $cnt++; } } ?>
</tr>
</tbody>
</table>
อันนี้codeอัพเดท
Code (PHP)
if (isset($_POST['update'])) {
$leavetype = $_POST['leavetype'];
$hours = $_POST['hours'];
$fromdate = $_POST['fromdate'];
$todate = $_POST['todate'];
$shift = $_POST['shift'];
$remark = $_POST['remark'];
$aid = $_POST['aid'];
$sql = "update tblleaves set LeaveType=:leavetype,hours=:hours,FromDate=:fromdate,ToDate=:todate,Shift=:shift,Remark=:remark where id=:aid";
$query = $dbh->prepare($sql);
$query->bindParam(':leavetype', $leavetype, PDO::PARAM_STR);
$query->bindParam(':hours', $hours, PDO::PARAM_STR);
$query->bindParam(':fromdate', $fromdate, PDO::PARAM_STR);
$query->bindParam(':todate', $todate, PDO::PARAM_STR);
$query->bindParam(':shift', $shift, PDO::PARAM_STR);
$query->bindParam(':remark', $remark, PDO::PARAM_STR);
$query->bindParam(':aid', $aid, PDO::PARAM_STR);
$query->execute();
$msg = "บันทึกสำเร็จ";
}
Tag : PHP, MySQL, HTML, Google Chrome, XAMPP, Windows
|
ประวัติการแก้ไข 2022-10-07 13:18:59 2022-10-07 13:23:24 2022-10-07 13:55:08 2022-10-07 14:12:56
|
|
|
|
|
Date :
2022-10-07 13:07:38 |
By :
chenwongsa |
View :
819 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เท่าที่ดูคร่าวๆ ถ้าในลักษณะนี้ input ควรเป็น array ครับ โดยการ update แต่ละครั้งเมื่อมีการ submit ควรใช้ foreach ในการแตก array แต่ละตำแหน่งเพื่อทำการ update ข้อมูล
PS : ต้องจำไว้ว่า php จะอ่านจากบนลงล่างเสมอ ถ้าไม่มีการระบุ type เป็น array มันจะนำค่าล่างสุดมาทำการ update หรือที่เรียกว่า Lastest input update
|
ประวัติการแก้ไข 2022-10-07 15:15:16 2022-10-07 15:17:28
|
|
|
|
Date :
2022-10-07 15:13:41 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : Genesis™ เมื่อวันที่ 2022-10-07 15:13:41
รายละเอียดของการตอบ ::
อันนี้ผมลองทำดูมันไปอัพเดทrecordแรกสุดแทนครับ จากตอนแรกอัพเดทrecordสุดท้าย
Code (PHP)
if (isset($_POST['update'])){
$leavetype = $_POST['leavetype'];
$hours = $_POST['hours'];
$fromdate = $_POST['fromdate'];
$todate = $_POST['todate'];
$shift = $_POST['shift'];
$remark = $_POST['remark'];
$aid = $_POST['aid'];
$sql = "update tblleaves set LeaveType=:leavetype,hours=:hours,FromDate=:fromdate,ToDate=:todate,Shift=:shift,Remark=:remark,id=:aid where id=:aid";
foreach ($aid as $aid)
foreach ($leavetype as $leavetype)
foreach ($hours as $hours)
foreach ($fromdate as $fromdate)
foreach ($todate as $todate)
foreach ($shift as $shift)
foreach ($remark as $remark) {
$query = $dbh->prepare($sql);
$query->bindParam(':leavetype', $leavetype, PDO::PARAM_STR);
$query->bindParam(':hours', $hours, PDO::PARAM_STR);
$query->bindParam(':fromdate', $fromdate, PDO::PARAM_STR);
$query->bindParam(':todate', $todate, PDO::PARAM_STR);
$query->bindParam(':shift', $shift, PDO::PARAM_STR);
$query->bindParam(':remark', $remark, PDO::PARAM_STR);
$query->bindParam(':aid', $aid, PDO::PARAM_STR);
$query->execute();
$msg = "บันทึกสำเร็จ";
}}
Code (PHP)
<tbody>
<?php
$eid = $_SESSION['emplogin'];
$sql = "SELECT * from tblleaves where HLine=:eid";
$query = $dbh->prepare($sql);
$query->bindParam(':eid', $eid, PDO::PARAM_STR);
$query->execute();
$results = $query->fetchAll(PDO::FETCH_OBJ);
$cnt = 1;
if ($query->rowCount() > 0) {
foreach ($results as $result) { ?>
<tr>
<td> <b><?php echo htmlentities($cnt); ?></b></td>
<td><input value="<?php echo htmlentities($result->id); ?>" id="aid" name="aid[]" class="form-control" type="text" readonly required></td>
<td><?php echo htmlentities($result->PostingDate); ?></td>
<td><input value="<?php echo htmlentities($result->Ename); ?>" id="emname" name="emname[]" class="form-control" type="text" readonly required></td>
<td><select name="leavetype[]" class="form-select" aria-label="Default select example">
<option value="<?php echo htmlentities($result->LeaveType); ?>"><?php echo htmlentities($result->LeaveType); ?></option>
<option value="ลาป่วย">ลาป่วย</option>
<option value="ลากิจ">ลากิจ</option>
<option value="ลาพักร้อน">ลาพักร้อน</option>
<option value="ลากิจพิเศษ">ลากิจพิเศษ</option>
<option value="ลาอุปสมบท">ลาอุปสมบท</option>
<option value="ลาคลอด">ลาคลอด</option>
</select></td>
<td><select name="hours[]" class="form-select" aria-label="Default select example">
<option value="<?php echo htmlentities($result->hours); ?>"><?php echo htmlentities($result->hours); ?></option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select></td>
<td><input value="<?php echo htmlentities($result->FromDate); ?>" id="mask1" name="fromdate[]" class="form-control" type="time" required></td>
<td><input value="<?php echo htmlentities($result->ToDate); ?>" id="mask2" name="todate[]" class="form-control" type="time" required></td>
<td><select name="shift[]" class="form-select" aria-label="Default select example">
<option value="<?php echo htmlentities($result->Shift); ?>"><?php echo htmlentities($result->Shift); ?></option>
<option value="A">A</option>
<option value="B">B</option>
</select></td>
<td>
<input id="remark" name="remark[]" type="text" value="<?php echo htmlentities($result->Remark); ?>" autocomplete="off" required>
</td>
<td><a href="View_attendance.php?del=<?php echo htmlentities($result->id); ?>" onclick="return confirm('Do you want to Cancel');">Cancel</a>
</td>
</tr>
<?php $cnt++; } } ?>
</tbody>
|
ประวัติการแก้ไข 2022-10-07 16:37:31
|
|
|
|
Date :
2022-10-07 16:30:39 |
By :
chenwongsa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
$arr_id = array(0,1,5,3,7);
$arr_name = array('Toyota', 'Honda', 'Good Cat', 'Benz', 'BMW');
foreach( $arr_id as $key => $val ){
echo $key." ".$val." ".$arr_name[$key]."<br />";
}
อ่าน Logic แล้วลองไปปรับปรุงครับ
|
ประวัติการแก้ไข 2022-10-07 16:33:19
|
|
|
|
Date :
2022-10-07 16:32:11 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันอาจจะน่าเบื่อหน่อย แต่คำอธิบายของ แต่ละฟังก์ชั่นมีความสำคัญต้องอ่านให้เข้าใจครับ
ถ้าคูณไม่ว่ารู้ว่าเกวียนมันทำงานยังไง คุณก็ขี่เกวียนไม่ได้
ในทำนองเดียวกัน คำสั่งแต่ล่ะคำสั่งมันมีความแตกต่างกัน
parameter ที่ต้องใส่
result ที่ได้รับ มันคืออะไร
ที่สำคัญขนิดของตัวแปร วิธีอ่านค่า และใส่ค่าเข้าไปใน array
มันมีหลายอย่างที่ต้องรู้ ถ้าไม่อ่านให้เข้าใจ ก็หมดสิทธิ์ไปต่อครับ
|
|
|
|
|
Date :
2022-10-07 20:27:07 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|