10/10/2018, 10:31

Xoá 1 bản ghi đã đánh dấu bằng checkbox như thế nào ???

Cho mình hỏi tý
mình có 1 danh sách các bản ghi (<table> ....</table>)
ở cột đầu tiên là checkbox để đánh dấu chọn những bản ghi nào
và cuối trang là nút lệnh "xoá tất"
khi bấm vào nút xóa thì tất cả những bản ghi nào đã được đánh dấu xoá
sẽ bị xoá.
Vậy mình phải viết đoạn code này như thế nào nhỉ ???
(Mình đang thiết kế bằng PHP)

và nếu muốn thêm một button có chức năng (chọn tất/bỏ chọn)
thì mã của nó cùng như thế nào nhỉ???
Bác nào biết giúp mình với nhé.Thank!!!
BabyOneMoreTime viết 12:35 ngày 10/10/2018
Vấn đề 1 : check all ,uncheck all
- Bạn cần tạo 1 cái check box với nhiệm vụ là check all ,đặt tên là chkall .Các check box con của nó thì đặt tên là chkid[] .Sau đó chèn đoạn code này vô
Code:
// JavaScript Document
function docheck(frm,a) 
{
	var checks = document.getElementsByName('chkid[]');
  	var boxLength = checks.length;
	  if(frm == true && a == 1)
	  {
	  	for(i = 0;i < boxLength;i++)
	  		checks[i].checked = true;
	  }
	  else if(frm == true && a == 2)
	  {
	  	for(i = 0;i < boxLength;i++)
	  		checks[i].checked = true;
		document.frmList.chkall.checked = true;
	  }
	  else
	  {
	  	for(i = 0;i < boxLength;i++)
	  		checks[i].checked = false;
		document.frmList.chkall.checked = false;
	  }
}
Ở ô check box ,bạn gọi sự kiện sau
Code:
 onClick="docheck(document.frmList.chkall.checked,1);"
Nếu thích có thêm 2 link check all ,và uncheck all nữa thì bạn thêm đoạn này vô
Code:
<a href="javascript:docheck(true,2);">Check All</a> | <a href="javascript:docheck(false);">Clear All</a>
Vấn đề 2 : Xóa nhiều record
- Lý do tớ đặt tên cho các ô check box con là chkid[] là vì dấu [] sẽ làm cho biến này trở thành 1 mảng ,nên ở trang delete của bạn ,bạn chỉ việc duyệt mảng để lấy id của bản ghi của bạn ra .vd :
Code:
if ($_POST['submit'] == "Delete")
{
	if ((isset($_POST['chkid'])) && ($_POST['chkid'] != "")) 
	{
	  $count = $_POST['chkid'];
			foreach($count as $key=>$value)
			{
				 $deleteSQL = "DELETE FROM article WHERE idArticle = $value";
				 mysql_select_db($database_db, $db);
				 $Result = mysql_query($deleteSQL, $db) or die(mysql_error());
			}
        }
}
Chúc bạn thành công .
p/s:mấy cái code trên tớ viết hơi chuối ,đừng cười
Alex0511 viết 12:35 ngày 10/10/2018
Đơn giản, dễ hiểu
Cám ơn bạn Đang cần thì có bài này của bạn
nam0504 viết 12:32 ngày 10/10/2018
Cảm ơn bạn nhiều nhé!!!
---------------------------------------------------
Nhưng mình xin được sửa lại cái function của bạn như sau:
function docheck(value)
{
var checks = document.getElementsByName('chkid[]');
var boxLength = checks.length;
if(value == true)
{
for(i = 0;i < boxLength;i++)
checks[i].checked = true;
}
else
{
for(i = 0;i < boxLength;i++)
checks[i].checked = false;
}
}

+ Ở ô check box , gọi sự kiện sau
onClick="docheck(document.frmList.chkall.checked); "

+ Ở 2 link:
<a href="javascript:docheck(true);">Check All</a> | <a href="javascript:docheck(false);">Clear All</a>
BabyOneMoreTime viết 12:38 ngày 10/10/2018
Được gửi bởi nam0504
Cảm ơn bạn nhiều nhé!!!
---------------------------------------------------
Nhưng mình xin được sửa lại cái function của bạn như sau:
function docheck(value)
{
var checks = document.getElementsByName('chkid[]');
var boxLength = checks.length;
if(value == true)
{
for(i = 0;i < boxLength;i++)
checks[i].checked = true;
document.frmList.chkall.checked = true;
}
else
{
for(i = 0;i < boxLength;i++)
checks[i].checked = false;
document.frmList.chkall.checked = false;
}
}

+ Ở ô check box , gọi sự kiện sau
onClick="docheck(document.frmList.chkall.checked); "

+ Ở 2 link:
<a href="javascript:docheck(true);">Check All</a> | <a href="javascript:docheck(false);">Clear All</a>
Nếu edit thì thêm 2 dòng trên nữa cho nó chuẩn luôn
sangit viết 12:45 ngày 10/10/2018
Phải chi post sớm chút thì hay quá! Mình cũng gặp chút rắc rối với checkbox, nhưng xử nó xong rồi.
pdkhoa viết 12:32 ngày 10/10/2018
Hôm nay đang bị bí cái này, đào mồ lên đc. Nhưng gặp vấn đề này, khi click vào nút xóa thì nó báo lỗi:
document.frmList is undefined

Ai giúp dùm mình
nam_long viết 12:45 ngày 10/10/2018
Được gửi bởi pdkhoa
Hôm nay đang bị bí cái này, đào mồ lên đc. Nhưng gặp vấn đề này, khi click vào nút xóa thì nó báo lỗi:
document.frmList is undefined

Ai giúp dùm mình
Thì tốt nhất dùng document.getElementById('ID của Form') là chắc ăn
Bài liên quan
0