สอบถามครับ Update ข้อมูลลง database โดยใช้ checkbox เป็นเงื่อนไข

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามครับ Update ข้อมูลลง database โดยใช้ checkbox เป็นเงื่อนไข

สอบถามครับ Update ข้อมูลลง database โดยใช้ checkbox เป็นเงื่อนไข
ผมเขียนโปรแกรมที่ให้ผู้ใช้เลือกข้อมูลที่ต้องการจะอัพเดทผ่าน checkbox ครับโดยตอนนี้ติดปัญหาที่ว่ากด submit แล้วค่าไม่เข้าไปที่ database ลองกดแล้วให้เด้ง echo alert ก็ไม่ขึ้นเหมือนกันครับ

เงื่อนไข เช็ค checkbox เพื่อลง database ครับ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
         
        $CheckBox = $_POST["dataset"];
        if(isset($_POST["Submit"]))
        {
            if(empty($CheckBox) || $CheckBox == 0 ) {  
                echo "Please select data after click submit !!";
            }else{
                foreach($_POST["dataset"] as $i)
                {
                    $query = "INSERT INTO r (id,accountcode,orders)
                             VALUES('{$_POST['txtID'][$i]}','{$_POST['txtACC'][$i]}','{$_POST['txtITM'][$i]}')";
                    $Q_INSERT = mysqli_query($conn,$query);                                    
                }
            }
            if($Q_INSERT)
            {
                echo "<script> alert('SUCCESS !')</script>";
            }
                 
            }
?>
 
อันนี้ส่วนของตารางข้อมูลและ checkbox ครับ
 
<tr>
<td><center><input type="hidden" name="txtID[]" id="txtID" value="<?php echo $ven2["id"];?>"><?php echo $ven2["id"];?></center></td>
<td><center><input type="hidden" name="txtACC[]" id="txtACC" value="<?php echo $ven2["acc_name"];?>"><?php echo $ven2["acc_name"];?></center></td>
<td><input type="hidden" name="txtITM[]" id="txtITM" value="<?php echo $ven2["item_name"];?>"><?php echo $ven2["item_name"];?></td>
<td><center><input type="checkbox" name="dataset[]" id="dataset" value="<?php echo $i++; ?>" ></center></td> 
</tr>
 
หน้าตาของเว็บโดยคร่าวๆครับ จริงๆมีรายการมากกว่านี้


Natchaphon Jumnakros 30-07-2019 17:10:46

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
เพิ่มเติมโค้ดในส่วนของตารางแสดงข้อมูลครับ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<table width="75%" border="1" id="myTable">
<thead>
<tr>
    <th width="5%"><div align="center">No.</div></th>
    <th width="10%"><div align="center">ACCOUNT CODE</div></th>
    <th width="25%"><div align="center">ITEM NAME</div></th>
    <th width="5%"><div align="center"></div></th>
</tr>
</thead>
<tbody>
 
<?php
      
$i=0;
 
while($i<$numr && $ven2 = $ven->fetch_assoc())
{
     
?>
 
<tr>
<td><center><input type="hidden" name="txtID[]" id="txtID" value="<?php echo $ven2["id"];?>"><?php echo $ven2["id"];?></center></td>
<td><center><input type="hidden" name="txtACC[]" id="txtACC" value="<?php echo $ven2["acc_name"];?>"><?php echo $ven2["acc_name"];?></center></td>
<td><input type="hidden" name="txtITM[]" id="txtITM" value="<?php echo $ven2["item_name"];?>"><?php echo $ven2["item_name"];?></td>
<td><center><input type="checkbox" name="dataset[]" id="dataset" value="<?php echo $i++; ?>" ></center></td> 
</tr>
 
<?php
}
?>
  
</tbody>
</table>


Natchaphon Jumnakros 30-07-2019 17:14
 ความคิดเห็นที่ 2
ลองกำหนด key ให้กับ element ที่เป็น array โดยใช้ค่าที่เป็น unique เช่น

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
       
$i=0;
  
while($i<$numr && $ven2 = $ven->fetch_assoc())
{
      
?>
  
<tr>
<td><center><input type="hidden" name="txtID[<?php echo $ven2["id"];?>]" id="txtID" value="<?php echo $ven2["id"];?>"><?php echo $ven2["id"];?></center></td>
<td><center><input type="hidden" name="txtACC[<?php echo $ven2["id"];?>]" id="txtACC" value="<?php echo $ven2["acc_name"];?>"><?php echo $ven2["acc_name"];?></center></td>
<td><input type="hidden" name="txtITM[<?php echo $ven2["id"];?>]" id="txtITM" value="<?php echo $ven2["item_name"];?>"><?php echo $ven2["item_name"];?></td>
<td><center><input type="checkbox" name="dataset[<?php echo $ven2["id"];?>]" id="dataset" value="<?php echo $i++; ?>" ></center></td> 
</tr>
  
<?php
}
?>


หรือดูเนื้อหาจากบทความด้านล่างเป็นแนวทาง


บทความแนะนำที่เกี่ยวข้อง
แนวทางการส่งค่า จาก checkbox เพื่อบันทึกข้อมูลแบบ array ใน phpอ่าน 34,605
ninenik 30-07-2019
 ความคิดเห็นที่ 3
คุณนิคครับ ถ้าผมเปลี่ยนเป็นแบบใช้ key แบบ unique  แล้วเงือนไขตอน checkbox ถูกติ๊กแล้วอัพลงดาต้าเบสต้องเปลี่ยนรึป่าวครับ


Natchaphon Jumnakros 31-07-2019 11:06
 ความคิดเห็นที่ 4
ตอนนี้ได้แล้วครับขอบคุณมากครับคุณนิค ถ้าผมอยากให้สามารถกลับมารับค่าเพิ่มได้จากหน้าแรก ต้องทำยังไงครับโดยที่ค่าเก่ายังคงอยู่และสามารถแสดงพร้อมกันได้


Natchaphon Jumnakros 01-08-2019 10:29
 ความคิดเห็นที่ 5
ไม่สามารถรับค่าในกรณีที่ติ๊กเลือกข้อมูลในหลายหน้าได้ครับ
ถ้าเลือกข้อมูลหน้า 1 กับ หน้า 2 มันจะรับค่าเฉพาะหน้าปัจจุบันตอนกดปุ่ม submit ครับ


Natchaphon Jumnakros 01-08-2019 11:03
 ความคิดเห็นที่ 6
ฟอร์มข้อมูล ปกติทั่วไป ก็จะอยู่แค่หน้าเดียว แต่ถ้าจะใช้หลายหน้าส่งข้อมูล ต้องประยุกต์
โดยทำความเข้าใจเกี่ยวกับ cookie หรือ session เพิ่มเติม

ลองดูเนื้อหาบทความ ด้านล่างเป็นแนวทาง


บทความแนะนำที่เกี่ยวข้อง
เลือก checkbox ในข้อมูลหลายๆ หน้าด้วย cookie อย่างง่ายอ่าน 11,452
ninenik 01-08-2019
 ความคิดเห็นที่ 7
ขอบคุณมากครับคุณนิค   ตอนนี้ติดในส่วนของ ช่อง checkbox อ่ะครับมันหาค่าตัวแปรของ chkbox_all , chkbox ไม่เจอครับ

ในส่วนของ chkbox_all ที่่หาไม่เจอครับ         
1
2
3
4
5
6
7
8
9
10
11
<?=($_COOKIE['chkbox_all'][$cookie_page]==$cookie_page)?"checked":""?>
 
ส่วนของ chkbox ครับ
 
<?=($_COOKIE['chkbox'][$rs['id']]==$rs['id'])?"checked":""?>
 
แล้วถ้ากด next page ไปถึงหน้า 5 ก็จะไม่พบค่าของ nClass ด้วยครับ
 
echo "<a $nClass href='$urlquery_str"."pages=1'>1</a><a class='SpaceC'>. . .</a>";
 
รบกวนด้วยครับ
1
 
1
 
1
 
 


Natchaphon Jumnakros 02-08-2019 10:52
 ความคิดเห็นที่ 8
ตอนนี้ในส่วนของ nClass แก้ไขได้แล้วครับเหลือ แค่ chkbox_all กับ chkbox ครับ


Natchaphon Jumnakros 02-08-2019 11:05
 ความคิดเห็นที่ 9
รุปประกอบครับ 

แต่หลังจากทำการติ๊กไปที่ row ใด row หนึ่งแล้ว กด เปลี่ยนหน้า ไป-กลับ หรือกด Reload page
ก็จะได้มาเป็นปกติแบบนี้ครับ





Natchaphon Jumnakros 02-08-2019 11:25
 ความคิดเห็นที่ 10
ถ้าหมายถึงการแจ้งเตือน กรณีเรียกใช้งานตัวแปร ที่ยังไม่มีการประกาศตัวแปรมาก่อน ลองใช้ คำสั่ง isset() && เพิ่มเข้าไป

1
<?=(isset($_COOKIE['chkbox'][$rs['id']]) && $_COOKIE['chkbox'][$rs['id']]==$rs['id'])?"checked":""?>


ninenik 02-08-2019
1 2 Next






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ