|
|
|
multiple dynamic checkbox จะ update แยกตามไอดี รายละเอียดด้านในครับ |
|
|
|
|
|
|
|
จากรูปจะบันทึกโดยแยกเป็นไอดีทำยังไงครับ เช่น ฝั่ง notebook มี type เป็น 2 ipad มี type เป็น 4 บันทึก
จะแยกแบบนี้น่ะครับ
id(auto) | type | machine | amount | log_id(FK)
1------------2-------1,2,3--------3------------1
2------------4-------31,32-------2------------1
แต่ type นี่มีการ insert มาก่อนหน้า แล้วมาเลือกเครื่องตามรูป update เข้า
Code (PHP)
<form id="form_item">
<div class="row">
<div class="col-lg-2">
<button type="button" class="btn btn-success" id="btn-save" data-loading-text="กำลังบันทึกข้อมูล..."><span class="glyphicon glyphicon-floppy-disk"></span> บันทึก</button>
<a type="button" class="btn btn-info" id="btn-signature" href="signature?Action=Yes&id=<?php echo $_GET['id']; ?>" style="display: none;"><span class="glyphicon glyphicon-edit"></span> ลงนาม</a>
<input type="hidden" name="id" id="id" value="<?php echo $_GET['id']; ?>">
</div>
</div>
<br>
<div class="row">
<?php
$select_item = explode(',', $_GET['item']);
$amount = explode(',', $_GET['amount']);
$number = count($select_item);
// echo $select_item[0] ."<br>";
// echo $select_item[1] ."<br>";
try {
for($i=0; $i<$number; $i++){
if ($select_item[$i] == 1) {
$name = 'Computer PC';
}
elseif ($select_item[$i] == 2) {
$name = 'Notebook';
}
elseif ($select_item[$i] == 3) {
$name = 'Microsoft Surface3';
}
else{
$name = 'Apple iPad';
}
$status = 'idle';
$sql_item = $db->prepare('SELECT list,machine_id
FROM tbl_machine
WHERE type = :type
AND status = :status
ORDER BY machine_id ASC');
$sql_item->bindParam(':type',$select_item[$i],PDO::PARAM_INT);
$sql_item->bindParam(':status',$status,PDO::PARAM_STR);
$sql_item->execute();
echo '<div class="col-md-3">';
// echo '<input type="hidden" id="hidden'.$amount[$i].'" value="'.$select_item[$i].'">';
if ($sql_item->rowCount() > 1) {
echo "<strong>".$name."</strong>";
$x = 0;
while ($results = $sql_item->fetch(PDO::FETCH_ASSOC)) {
echo '<div class="checkbox">';
echo '<label>';
echo '<input type="checkbox" class="item" name="item[]" id="item'.$results["list"].'" data-id="'.$amount[$i].'" data-sel="'.$select_item[$i].'" value="'.$results["machine_id"].'" />'.$results["list"];
echo '</label>';
echo '</div>';
$x++;
}
}
else {
echo '<strong>ไม่มีข้อมูลหรือไม่มีเครื่องว่าง</strong>';
}
echo "</div>"; //col-md-3
} //for
}//try
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
?>
</div>
</form>
</div>
Code (PHP)
<?php
include 'connect.php';
if(is_array($_POST["item"])){
$item = implode(',', $_POST['item']); //xx,xx,xx,xx
}
print_r($_POST['item']);
$id = $_POST['id']; //log_id
$machine_id = $_POST['item'];
try {
$update = $db->prepare('UPDATE tbl_borrow_logs
SET item = :item
WHERE log_id = :id');
$update->bindParam(':id',$id,PDO::PARAM_STR);
$update->bindParam(':item',$item,PDO::PARAM_STR);
$update->execute();
// $update = $db->prepare('UPDATE tbl_select_item
// SET machine = :item
// WHERE id = :id');
// $update->bindParam(':id',$id,PDO::PARAM_STR);
// $update->bindParam(':item',$item,PDO::PARAM_STR);
// $update->execute();
$x = count($machine_id);
$status = 'busy';
for($i=0; $i < $x; $i++){
$sql1 = $db->prepare('UPDATE tbl_machine
SET status = :status
WHERE machine_id = :id');
$sql1->bindParam(':id',$machine_id[$i],PDO::PARAM_INT);
$sql1->bindParam(':status',$status,PDO::PARAM_STR);
$sql1->execute();
}
echo "success";
}
catch(Exception $e) {
//echo "Error: " . $e->getMessage();
echo 'Exception -> ';
var_dump($e->getMessage());
}
$db = null;
?>
Tag : PHP, MySQL, JavaScript, Ajax, jQuery
|
ประวัติการแก้ไข 2017-01-04 13:15:39 2017-01-04 13:17:18
|
|
|
|
|
Date :
2017-01-04 13:14:21 |
By :
littlebeer |
View :
949 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ติดปัญหาตรงไหนครับ
|
|
|
|
|
Date :
2017-01-05 11:37:55 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ติดตรงตอนนี้ผมบันทึกได้เป็นแบบนี้ type นี่มีการบันทึกมาก่อนหน้าแล้วนะครับ แล้วจะมา update ฟิลด์ machine ทีหลัง
id(auto) | type | machine | amount | log_id(FK)
1------------2---1,2,3,31,32------3------------1
2------------4------ ------2------------1
|
|
|
|
|
Date :
2017-01-09 08:55:34 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดันหน่อย
|
|
|
|
|
Date :
2017-01-09 22:27:11 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ก็ขึ้นอยู่กับว่า ท่านได้ออกแบบตาราง ฐานข้อมูลไว้แบบไหนครับ ตามความต้องการคือ จะบันทึก หรือ อัพเดท หรือจะทำอะไรก็แล้วแต่ อันนี้ Process ระบบท่านน่าจะรู้อยู่แล้ว เพราะท่านเป็นคนออกแบบ? สำหรับปัญหาความต้องการ มันมองแค่ code กับภาพ capture แล้วจะตอบให้เคลียร์เลยไม่ได้ครับ ถ้าให้เดา ก็น่าจะเป็นการอัพเดทหลายๆ ครั้ง อันนี้ ก็ต้องออกแบบตารางฐานข้อมูลให้ดีด้วย ส่วน Code นั้น มันก็แค่ Post , Get ธรรมดาทั่วไป สู้ๆครับ
|
|
|
|
|
Date :
2017-01-10 01:40:05 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|