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

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

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

เงื่อนไข เช็ค checkbox เพื่อลง database ครับ
<?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
เพิ่มเติมโค้ดในส่วนของตารางแสดงข้อมูลครับ
<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 เช่น

<?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,099
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,217
ninenik 01-08-2019
 ความคิดเห็นที่ 7
ขอบคุณมากครับคุณนิค   ตอนนี้ติดในส่วนของ ช่อง checkbox อ่ะครับมันหาค่าตัวแปรของ chkbox_all , chkbox ไม่เจอครับ

ในส่วนของ chkbox_all ที่่หาไม่เจอครับ         
<?=($_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>";

รบกวนด้วยครับ 
    







 


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() && เพิ่มเข้าไป

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


ninenik 02-08-2019
1 2 Next






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