มี checkbox 2 อัน โดยที่อันแรกถูกติกไว้ก่อนแล้ว เมื่อติกออก ให้อันที่ 2 ติก ต้องทำไง
ใช้ radio ดีไหมครัย
Date :
2012-01-12 12:09:25
By :
หาของ
พอดีต้องการใช้เป็น checkbox พอจะทำได้ป่าว
Date :
2012-01-12 13:04:51
By :
TT
Code (JavaScript)
<html>
<head>
<title>ThaiCreate.Com</title>
</head>
<body>
<form name="frmMain">
<input type="checkbox" name="chk1" checked OnClick="if(!this.checked){frmMain.chk2.checked=true;}">
<input type="checkbox" name="chk2">
</form>
</body>
</html>
Date :
2012-01-12 13:07:26
By :
webmaster
มันทำได้อะครับ ใช้ jquery หรือไม่ก็ javascript อะครับ ต้องนั่งเขียนเองอะ
ถ้าว่างจะเขียนให้นะ ฮ่าๆ
Date :
2012-01-12 13:09:16
By :
EzilliL3
ทำไมต้องเป็น checkbox ในเมื่อต้องการเลือกแค่อันใดอันหนึง ไม่งั้นเค้าจะมี radio มาทำไมครับ
Date :
2012-01-12 13:11:12
By :
ikikkok
หุหุ
Date :
2012-01-12 13:23:55
By :
webmaster
@ คุณ ikikkok เหตุผลคือ ต้องการที่จะติกเช็ดอันที่ 1 ออก แล้วให้อันที่ 2 ถูกติก เพราะว่าต้องการใช้ ID เพราะถ้าเอาติกออก ID จะหายไปด้วย
Date :
2012-01-12 14:29:11
By :
TT
ขอบคุณคับ
เพิ่มอีกนิด ถ้าติกคืน checkbox อีกอันต้องหาย ต้องเพิ่มตรงไหนเหรอ
Date :
2012-01-12 15:59:24
By :
TT
พอจะทำเป็น funtion javascript ได้ป่าว
Date :
2012-01-12 16:08:49
By :
TT
อันที่ผมเขียนให้ใข้ไม่ได้ใช่ป่ะครับ
Date :
2012-01-12 21:13:21
By :
webmaster
uncheck ตัวแรกแล้วบังคับ check ตัวที่สอง มันเหมือนกันกับใช้ radio แหละครับ เลือกตัวใดตัวหนึ่งได้เท่านั้นถ้า name เหมือนกัน คุณต้องเลือกใช้ให้ถูกต้องครับ ของเขามีไว้ให้ใช้ก็ต้องเลือกใช้ให้ถูกต้อง จะได้ไม่ลำบาก จุดประสงค์ของคุณอธิบายด้วยครับว่ากำลังจะทำอะไร ไม่งั้นก็ต้องมานั่งหากันตั้งแต่ปลายน้ำ กว่าจะเดินถึงต้นน้ำก็นานแสนนาน คุณถึงจะแก้ปัญหาของคุณได้ จริงๆ แล้วมันอาจจะแค่เปลี่ยน control อย่างที่ผมบอกก็เป็นได้
Date :
2012-01-12 21:37:54
By :
ikikkok
ที่แรก มันจะมี checkbox อยู่อันหนึ่งแล้วจะมีเครื่องหมายเช็คไว้ทุกอันเสมอไว้สำหรับการ เพิ่ม แก้ไข โดยจะเอาค่า ID ใน checkbox ไปใช้ในการวน loop เพิ่ม แก้ไข ข้อมูล แล้ว ลบคือต้องการที่จะเอาเครื่องหมายถูกออก แต่พอเอาออก ID ก็หายไปด้วยเลยลบไม่ได้ เลยใช้วิธีที่ว่าแทนโดยมี checkbox 2 อัน แทน
หรือมีวิธีอื่นที่แนะนำ..........ตอนนี้เขียนไม่ออกแล้ว....................................
Date :
2012-01-13 09:12:45
By :
TT
เอาโค้ดการทำงานมาดูหน่อย
หน้าที่เป็น checkbox เพื่อส่งค่า id
หน้าที่รับค่า id เอาไปทำงาน
เอามาเฉพาะที่ใช้นะ
Date :
2012-01-13 09:24:35
By :
ozma
ตามคุณ mr.win ให้มาน่ะถูกแล้วครับ (ผมแอบเพิ่มนิดหน่อยนะครับ เพื่อให้มันทำงานเหมือน radio button อีกนิดนึง ^^)
<html>
<head>
<title>Credit : mr. win - ThaiCreate.Com</title>
</head>
<body>
<form name="frmMain">
<input type="checkbox" name="chk1" checked OnClick="if(!this.checked){frmMain.chk2.checked=true;}else{frmMain.chk2.checked=false}">
<input type="checkbox" name="chk2" OnClick="if(!this.checked){frmMain.chk1.checked=true;}else{frmMain.chk1.checked=false}">
</form>
</body>
</html>
Date :
2012-01-13 10:25:51
By :
xoox007
ขอบคุณ คุณ xoox007 มากคับ
แต่มันติกที่ ข้อมูลมันเป็น array แต่ละ checkbox จะมี ID กำกับอยู่ ต้องทำไง
Date :
2012-01-13 10:50:04
By :
TT
ไม่เห็นต้องเพิ่มเลยนิครับ คุณจะลบตัวที่ไม่ติ๊ก ก็ส่ง id ทั้งหมดมาเป็น array อันไหนติ๊กมันก็จะมา อันไหนไม่ติ๊กมันก็ไม่มา แล้วใช้ not in ใน sql ก็จบ บอกแล้วว่าให้อธิบายมาว่าอยากจะทำอะไร ไม่งั้นคุณก็ได้ไปทำอย่างอื่นนานแล้วครับ
Date :
2012-01-13 11:02:58
By :
ikikkok
ขอบคุณ คุณ ikikkok คับ
not in ใช้ไงเหรอคับ พอดีใช้ไม่เป็น
$sql_de="delete from tbl_application where id_app='$id_application'";
อันนี้คำสั่ง ลบ เพิ่ม not in ตรงไหนคับ
Date :
2012-01-13 11:14:45
By :
TT
Code (PHP)
$sql_de="delete from tbl_application where id_app not in ('" . implode(",", $id_application) . "'";
id_application ต้องเป็น array นะครับ
Date :
2012-01-13 11:27:04
By :
ikikkok
มันขึ้น
Warning: implode() [function.implode]: Invalid arguments passed in
Date :
2012-01-13 11:34:05
By :
TT
แน่ใจนะว่า $id_application เป็น array
Date :
2012-01-13 11:45:48
By :
ikikkok
ต้องส่งยังไงเหรอคับ id_application ของผมมัน วน loop จาก checkbox
[chk] => Array
(
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
)
ค่าที่ได้ ส่ง 1 - 3 ผมติกออก มันเลยไม่มี
หรือทำยังไงคับ
Date :
2012-01-13 11:48:24
By :
TT
ถ้ายังไม่ใช่ array ต้องทำไงคับ
Date :
2012-01-13 11:49:29
By :
TT
เอาโค๊ดมาดูเถอะครับ
Date :
2012-01-13 11:53:10
By :
ikikkok
Code (PHP)
<?
###################################################################
## Document management system project
###################################################################
## Version : 201003XX (001)
## Created Date : 2010-03-xx xx:xx
## Created By : Mr.KAITBANJONG CHAWNAN (TUM)
## E-mail : [email protected]
## Tel. : 085-8639278
## Company : Sappire Research and Development Co.,Ltd. (C)All Right Reserved
###################################################################
session_start();
include"../../../config/documentConfig.inc.php";
$id_project=$_GET['id_project'];
if($action=="add"){
foreach($_POST["chk"] As $value){
$id_application=$value;
$urlname=$_POST['urlname'][$id_application];
if(!ereg("^(http|https|ftp)://(www\.)?[a-z][a-z0-9\_\-]*(\.[a-z[a-z0-9\_\-]*)+(/[a-z0-9\_\-]*\.[a-z]+)?$",$urlname)){
echo "<script language=\"javascript\">
alert(\"กรุณาระบุ http:// นำหน้า $urlname \\n \");
die();
window.close();
</script>";
}
}
for($i=0;$i<count($_POST["chk"]);$i++){
if ($_POST["chk"] ==""){
foreach($_POST["chk"] As $value){
$id_application=$value;
}
}
$urlname=$_POST['urlname'][$id_application];
for($i=0;$i<count($_POST["chk"]);$i++){
if($_POST["chk"][$i] == ""){
$sql_de="delete from tbl_application where id_app not in ('" . implode(",", $id_application) . "'";
// $sql_de="delete from tbl_application where id_app NOT IN '$id_application'";
echo "<pre>";
print_r($_POST);die;
$sqlquery_de=mysql_db_query($dbname,$sql_de);
}
}
}
$urlname=$_POST['urlname'];
$remark=$_POST['remark'];
foreach($_POST["chk"] As $value){
$id_application=$value;
$sql="insert into tbl_project_app
(id_project ,id_application ,urlname ,remark)
values
('$id_project','$id_application','" . $urlname[$id_application] ."','" .$remark[$id_application] ."')";
#echo "<pre>";
#print_r($_POST);die;
$sqlquery=mysql_db_query($dbname,$sql);
$sql_up=("UPDATE tbl_project_app SET urlname = '" . $urlname[$id_application] ."' ,remark = '" . $remark[$id_application] . "' WHERE id_project = '$id_project' AND id_application='$id_application'");
$sqlquery_up=mysql_db_query($dbname,$sql_up);
}
mysql_close($conn);
print"<meta http-equiv=refresh content=0;URL=add_application.php>";
echo "<script language=\"javascript\">
alert(\"ทำการบันทึกข้อมูลเรียบร้อยแล้ว\\n \");
window.opener.location.reload();
window.close();
</script>";
}
?>
<html >
<head>
<title><?=$_SESSION['title'];?></title>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-874" />
<link rel="stylesheet" type="text/css" href="../management/hiliterow.css" />
<script language="javascript">
function checkAllBox(obj)
{
var theForm = obj.form;
var i;
if(obj.checked){
for(i=1;i<theForm.length; i++)
{
theForm[i].checked = true;
}
}else if(!obj.checked){
for(i=1;i<theForm.length; i++)
{
theForm[i].checked = false;
}
}
}
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
} }
</script>
</head>
<body>
<form action="" method="post">
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="datatable" summary="List of new students 2003">
<tr valign="middle">
<th colspan="4" align="left" style="background:url(../../../images/titlebg20091110.png);height:30px; border:1px solid #D6DDE6;" scope="col"><div style="font-weight:bold; font-size:12px; color:#000; padding-top:2px;">เลือกแอพพลิเคชั่น</div></th>
</tr>
<tr>
<td height="139" colspan="4"><table width="80%" border="0" align="center" cellpadding="0" cellspacing="0" class="datatable" style="margin-bottom:10px; margin-top:10px;" summary="List of new students 2003">
<caption style="font-weight:bold; font-size:13px;">
</caption>
<tr style="background:url(../../images/titlebg20091110.png);">
<td width="4%" height="25" align="center" style="background:url(../../../images/titlebg20091110.png);" scope="col"><label>
<input type="checkbox" name="checkall" onClick="checkAllBox(this)" title="เลือกทั้งหมด" />
</label></td>
<td colspan="3" align="left" valign="middle" style="background:url(../../../images/titlebg20091110.png);"><span style="font-weight:bold; font-size:12px;"> ชื่อแอพพลิเคชั่น URL หมายเหตุ </span></td>
</tr>
<?
$id_project=$_GET['id_project'];
$sql="select * from tbl_application order by id_app ASC";
$query=mysql_query($sql);
while($row = mysql_fetch_array($query)){
?>
<tr>
<td align="center"><label>
<script type="text/javascript">
function fncchk(_id,_checked){
var _obj = document.getElementById("chk["+_id+"]")
if(_checked == false){
if(confirm("ต้องการที่จะลบข้อมูลใช่หรือไม่")){
_obj.checked = false;
document.getElementById("hId").value = document.getElementById("hId").value.replace(_val+",","")
document.getElementById("hId").value += _val+","
}else{ // Cance
_obj.checked = true;
document.getElementById("hId").value = document.getElementById("hId").value.replace(_val+",","")
}
}
}
</script>
<input type="checkbox" name="chk[<?=$row[id_app];?>]" id="chk[<?=$row[id_app];?>]" value="<?=$row[id_app];?>"onClick="fncchk('<?=$row[id_app];?>',this.checked);"<? if($ro->id_application==$row->id_app){ echo "checked";}?>>
</label></td>
<td width="57%">
<?=$row[name_application];?></td>
<? $sql_re="select * from tbl_project_app where id_application ='".$row[id_app]."'";
$query_re=mysql_query($sql_re,$conn);
$re=mysql_fetch_array($query_re);
?>
<td width="22%" align="left" valign="top"><input name="urlname[<?=$row[id_app];?>]" type="text" id="urlname" value="<?=$re[urlname];?>" size="25" onKeyPress= ></td>
<td width="17%" align="left" valign="top"><input name="remark[<?=$row[id_app];?>]" type="text" id="remark" value="<?=$re[remark];?>" size="20"></td>
</tr>
<? }
// }else {echo "<div style='color:#F00; text-align:center; font-weight:bold;font-size=12;'>ยังไม่มีข้อมูลแอพพลิเคชั่น</div>";}
?>
<tr>
<td colspan="4" align="center" style="padding-top:20px;"><label>
<span style="padding-top:10px;">
<script type="text/javascript">
</script>
</span>
<span style="padding-top:10px;">
<input type="submit" name="button3" id="button3" value="บันทึกข้อมูล" onClick="is_valid_url ($url)" >
<!--<input name="id_project[<?=$re[id_project];?>]" type="hidden" value="<?=$_GET['id_project']; ?>">-->
<!-- Note -->
<input name="id_project[<?=$row[id_project]?>]" type="hidden" value="<?=$_GET['id_project']; ?>">
<!-- End -->
<input type="button" name="button3" id="button4" value="ปิดหน้าจอ" onClick="window.close();">
</span><span style="padding-top:10px;">
<input name="action" type="hidden" value="add">
</span>
<input name="staff[<?=$row[id_application]?>]" type="hidden" value="<?=$_SESSION['staffid'];?>">
</label></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
Date :
2012-01-13 11:55:05
By :
TT
คุณส่งผ่าน chk มาไม่ใช่หรอครับ ก็ใช้
$sql_de="delete from tbl_application where id_app not in ('" . implode(",", $_POST['chk']) . "'";
ซิครับ ลอง echo ดูก่อนก็ได้
Date :
2012-01-13 12:20:58
By :
ikikkok
echo ออกมามันเป็น Array ต้องทำไงคับ
Date :
2012-01-13 12:48:07
By :
TT
echo ออกมามันขึ้น Array ต้องทำไงคับ
Date :
2012-01-13 13:07:55
By :
TT
echo $sql_de นะครับ ได้อะไร
Date :
2012-01-13 13:10:36
By :
ikikkok
แต่ถ้า ติกลบหลายตัว มันก็วน loop ตามที่ติก
หรือไม่ต้องวน loop ลบ
Date :
2012-01-13 13:16:35
By :
TT
เอา loop ลบ ออก
ขึ้น delete from tbl_application where id_app not in '3,4,5,6,7,8,9' แต่ไม่ลบให้ งง
Date :
2012-01-13 13:22:54
By :
TT
แก้ไข ลืมปิดวงเล็บ
Code (PHP)
$sql_de="delete from tbl_application where id_app not in ('" . implode(",", $_POST['chk']) . "')";
Date :
2012-01-13 13:37:03
By :
ikikkok
ลบได้แล้ว
แต่สมมุติ ขึ้น delete from tbl_application where id_app not in '3,4,5,6,7,8,9'
มัน ลบข้อมูล 1 2 4 5 6 7 8 9 ออก เหลือ 3 ตัวเดียว
แต่อันที่ติกออก คือ 1 กับ 2 เท่านั้น 4 5 6 7 8 9 ไม่ได้ติกออก
Date :
2012-01-13 13:49:26
By :
TT
ตอนนี้ที่ทำคือ ลบตัวที่ไม่ติ๊กนะครับ ถ้ามันตรงกันข้ามก็เปลี่ยนจาก not in เป็น in ผมไม่ค่อยเข้าใจคุณสักเท่าไหร่
Date :
2012-01-13 14:10:10
By :
ikikkok
ถูกต้องคับ ลบตัวที่ไม่ติก
.........แต่ มันไปลบอันที่ ติกด้วย สมมุติมี 1 - 10 ติกออก 1 กับ 2 มันก็ลบ 1 กับ 2
แต่ มันไม่ลบแค่นั้น มันเว้น 3 เพราะว่ามันเป็นตัวแรก ข้างล่าง
delete from tbl_application where id_app not in '3,4,5,6,7,8,9'
ส่วน 4 - 9 มับลบ ด้วยงง
Date :
2012-01-13 14:17:34
By :
TT
โทษที ผมผิด
Code (PHP)
$sql_de="delete from tbl_application where id_app not in (" . implode(",", $_POST['chk']) . ")";
Date :
2012-01-13 15:05:32
By :
ikikkok
ไม่เป็นไรคับ คุณช่วยผมเยอะ
ขอบคุณอีกครั้งคับ ได้แล้ว
Date :
2012-01-13 15:09:09
By :
TT
ตกลงได้แล้วน้อ สมัครสมาชิกด้วยครับ เผื่อมาถามครั้งต่อไป จะได้รู้ว่าคุณถามไรไปบ้าง เพราะบางทีมันเกี่ยวเนื่องกัน
Date :
2012-01-13 15:37:51
By :
ikikkok
ได้คับ
Date :
2012-01-13 15:41:21
By :
TT
สมัครเสดละคับ มายืนยัน
Date :
2012-01-13 16:05:20
By :
TheCom
อยากได้โค๊ดที่พอกันปุ่ม submit บัทึกข้อมูลแล้ว
ปุ่มcheckboxที่ติ๊กไว้ไม่ให้เครื่องหมาถูกหายไป
และดึงมาใช้ในหน้าแก้ไขด้วย
Date :
2013-02-21 15:40:47
By :
bowbaba
Load balance : Server 01