รบกวนผู้รู้ ในการใช้ radiobutton ใน PHP และ การจะบันทึกข้อมูลในลักษณะแบบนี้ด้วยครับ
Code (PHP)
<table>
<?php while($rs=$qrObj->fetch_assoc()):?>
<tr>
<td>..........</td>
<td align="center" ><label><input name="chkDel[<?=$rs['id']?>]" type="radio" class='present' value="มา" <?=($rs['status']==''? 'checked' : '')?>></label></td>
<td align="center" bgcolor="#FFCCFF"><label><input name="chkDel[<?=$rs['id']?>]" type="radio" class='absent' value="ขาด" <?=($rs['status']=='ขาด'? 'checked' : '')?>></label></td>
<td align="center" bgcolor="#FFCCCC"><label><input name="chkDel[<?=$rs['id']?>]" type="radio" class='leave' value="ลา" <?=($rs['status']=='ลา'? 'checked' : '')?>></label></td>
<td align="center" bgcolor="#FFCC99"><label><input name="chkDel[<?=$rs['id']?>]" type="radio" class='late' value="มาสาย" <?=($rs['status']=='มาสาย'? 'checked' : '')?>></label></td>
</tr>
<?php endwhile; ?>
</table>
เปลี่ยน num1 num2 num3 ไว้ใน field เดียวกันครับ เป็น status type enum['', 'ขาด', 'ลา','มาสาย']
เพราะ คงไม่มี ใครมีหลาย status ใน 1 วัน
ใช้ id ของ user เป็นตัวกำหนด ชื่อ
ใช้ class เป็นตัวกำหนด status เพื่อติ๊กทั้งหมดทุก user
Date :
2015-04-19 10:47:49
By :
Chaidhanan
ขอบคุณท่าน Chaidhanan มากครับ ผมมาประยุกต์มาได้แบบนี้ครับ มันใช่ได้เหมือนกัน (เลียงลำดับ ขาด ลา มาสาย นะครับ)
Code (PHP)
<INPUT TYPE="radio" NAME="chk_val[<?php echo $rs[num];?>]" value="<?php echo $a_val[$i]?>" id="radio2" <?php echo $chked?>>
</a></label></td>
<td align="center" bgcolor="#FFCCCC">
<label></label>
</a>
<INPUT TYPE="radio" NAME="chk_val[<?php echo $rs[num];?>]" value="<?php echo $a_val[$i]?>" id="radio" <?php echo $chked?>></td>
<td align="center" bgcolor="#FFCC99">
<label></label>
<INPUT TYPE="radio" NAME="chk_val[<?php echo $rs[num];?>]" value="<?php echo $a_val[$i]?>" id="radio3" <?php echo $chked?>>
</a></td>
แต่ผมส่งสัยว่าเวลาบันทึกลงไปในฐานข้อมูลจะเอาค่าใหนไปครับ ใช่ เอา ค่าจาก value ไหมครับ หากใช้ ผมต้องเปลี่ยนค่า $i ให้เป็น ขา ลา มาสาย ใช่ไหมครับ
ประวัติการแก้ไข 2015-04-19 11:17:53
Date :
2015-04-19 11:17:03
By :
wittayakorn1
<INPUT TYPE="radio" NAME="chk_val[<?php echo $rs[num];?> ]"
สีแดงต้องเป็น id เฉพาะของ record นั้นครับ เพื่อ อ้างอิง ชื่อ radio ทุกอัน ของ record เดียวกัน ให้มีชื่อเดียวกัน
ถ้า เอา ค่ามาใส่ และมีหลายเรคคอร์ด จะทำให้มี radio ชื่อซ้ำกัน จะทำให้การอ้างอิ้งเฉพาะคนผิดไปครับ
ส่วน value ต้องกำหนดค่า ใน record เดียวกัน ให้มันแตกต่างกันครับ เพราะเวลาติก มันจะได้ค่าที่ต่างกัน ตามความต้องการ
ถ้า value มีค่าเดียวกัน เราจะรู้ได้อย่างไรว่า อันไหน ขาด ลา หรือ มาสาย
ทดสอบได้ โดยการ view source มาดูค่าของ html ครับ ว่าถูก generate ออกมาเป็นอะไร
ทำให้เห็นภาพรวมชัดเจนขึ้นครับ
Date :
2015-04-19 11:34:09
By :
Chaidhanan
รบกวนท่าน Chaidhanan
view source เพื่อมาดูค่าของ html ครับ ให้ผมดูเป็นตัวอย่างหน่อยได้ไหมครับ
Date :
2015-04-19 12:06:05
By :
wittayakorn1
บน browser ( ตัวอย่าง chrome.) คลิกขวา เลือก view source (ดูรหัสต้นฉบับ)
ก็จะมี code html ของ หน้านั้นๆ แสดงให้เห็นครับ
ส่วน firefox ie ก้ลองหาคำสั่งที่คล้ายๆ กันครับ
Date :
2015-04-19 12:25:55
By :
Chaidhanan
ท่าน Chaidhanan หรือ ทุกท่านที่เคารพอย่างสูงครับ ครับช่วยดู code นี้ให้ผมหน่อยว่าหากจะส่งค่าไปเพื่อบันทึกลงฐานข้อมูลต้องทำไงครับ ผมติดตรงที่ INPUT TYPE ที่เป็น radio ครับ ไม่ทราบว่าจะเอาค่าตัวไหนไปลงเพื่อบันทึกลงฐานข้อมูลครับ คือ ผมต้องการส่ง ค่า num ค่า sum_onlearning=1 ค่า sum_la=1 ค่า sum_lead=1 ไปบันทึกครับ คือที่ผมทำได้หน้าคือ แค่ สามารถติกเลือกให้เหมือตัวแรกๆที่ผมถามไว้ได้แค่นั้นครับ แต่จะส่งค่าไปยังไงผมยังไม่เข้าใจครับ รบกวนชี้แนะด้วยนะครับ
Code (PHP)
<?
// Convert Variable Array To Variable
while(list($xVarName, $xVarvalue) = each($_GET)) {
${$xVarName} = $xVarvalue;
}
while(list($xVarName, $xVarvalue) = each($_POST)) {
${$xVarName} = $xVarvalue;
}
while(list($xVarName, $xVarvalue) = each($_FILES)) {
${$xVarName."_name"} = $xVarvalue['name'];
${$xVarName."_type"} = $xVarvalue['type'];
${$xVarName."_size"} = $xVarvalue['size'];
${$xVarName."_error"} = $xVarvalue['error'];
${$xVarName} = $xVarvalue['tmp_name'];
}
?>
<?php
session_start();
$ses_userid =$_SESSION[ses_userid];
$ses_username = $_SESSION[ses_username];
if($ses_userid <> session_id() or $ses_username ==""){
echo " No Login";
echo "<meta http-equiv='refresh' content='2;URL=index.php' />";
} else {
?>
<?
include("include/class.mysqldb.php");
include "include/dbconfig.php";
?>
<html>
<head>
<meta charset="windows-874">
<title>chack_classroom</title>
<style type="text/css">
a:hover {
color: #F9060A;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874"></head>
<body>
</p>
<? echo "ID $username"; ?>
<? // ตรวจสอบว่าเป็น admin หรือไม่
$sql="SELECT * FROM teacher where TeacherID='$username' and status<>'1' and status<>'2' ";
$result=mysql_query($sql);
if(mysql_num_rows($result)=='0')
{
?>
<? echo"<a href='index2.php?username=$username'>หน้าหลัก "; ?>
<?
}
else
{
?>
<? echo"<a href='index2_teacher.php?username=$username'>หน้าหลัก "; ?>
<?
}
//}
// จบการตรวจสอบ Admin ?>
<a href="javascript:printContentDiv('lblPrint');"><img src="img/b_print.png" alt="" title="Print"> รายงานผล</a>
<form name="form1" method="post" action="chack_classroom.php">
<table width="100%" border="0">
<tr>
<td align="center" bgcolor="#63A7BC"><span style="color: #F7F0F0">
<label></label>
<input type='hidden' name='click_search' id='click_search' value='click' />
<a href="index2.php"></a></span>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><div align="center"></div>
<span style="color: #F7F0F0"><label></label>
</span>
<div align="center"><span style="color: #F7F0F0">ค้นหาจาก ชื่อ
<input name="stu_name" type="text" id="stu_name">
หรือ รหัสนักเรียน
<input name="stu_id" type="text" id="stu_id" size="8">
<select name="Stu_clase" id="Stu_clase">
<option value=""><-- ระดับชั้น --></option>
<?
//
//$strSQL = "SELECT DISTINCT Stu_Clase FROM student ORDER BY Stu_Clase ASC";
$strSQL = "SELECT DISTINCT Stu_Clase FROM student INNER JOIN in_out ON student.Stu_ID = in_out.Stu_ID ORDER BY Stu_Clase ASC";
$objQuery = mysql_query($strSQL);
while($objResuut = mysql_fetch_array($objQuery))
{
?>
<option value="<?=$objResuut["Stu_Clase"];?>">
<?=$objResuut["Stu_Clase"];?>
</option>
<?
}
?>
</select>
<select name="Stu_Room" id="Stu_Room">
<option value=""><-- ห้อง --></option>
<?
//
$strSQL = "SELECT DISTINCT Stu_Room FROM student INNER JOIN in_out ON student.Stu_ID = in_out.Stu_ID ORDER BY Stu_Room ASC";
$objQuery = mysql_query($strSQL);
while($objResuut = mysql_fetch_array($objQuery))
{
?>
<option value="<?=$objResuut["Stu_Room"];?>">
<?=$objResuut["Stu_Room"];?>
</option>
<?
}
?>
</select>
</span><span style="color: #F7F0F0">
<input type="submit" name="serch" value=" ค้นหา ">
</span></div></td>
</tr>
<tr>
<td width="435"><div align="center"></div></td>
<td width="173"><div align="center"></div></td>
</tr>
</table></td>
</tr>
</table>
</form>
<form name="form2" method="post" action="showchack.php">
<div align="center">
<script language='javascript'>
//<!–
function printContentDiv(content){
var printReady = document.getElementById(content);
//var txt= 'nn';
var txt= '';
if (document.getElementsByTagName != null){
var txtheadTags = document.getElementsByTagName('head');
if (txtheadTags.length > 0){
var str=txtheadTags[0].innerHTML;
txt += str; // str.replace(/funChkLoad();/ig, ” “);
}
}
//txt += 'nn';
if (printReady != null){
txt += printReady.innerHTML;
}
//txt +='nn';
var printWin = window.open();
printWin.document.open();
printWin.document.write(txt);
printWin.document.close();
printWin.print();
}
// –>
</script>
<div id="lblPrint">
<div align="center">
<script language="javascript">
function chk_all(){
var x=document.getElementsByTagName("input");
for(i=0;i<=x.length;i++){
if(x[i].type=="radio"){
x[i].checked=true;
}
}
}
function unchk_all(){
var x=document.getElementsByTagName("input");
for(i=0;i<=x.length;i++){
if(x[i].type=="radio"){
x[i].checked=false;
}
}
}
</script>
<?php
if($click_search == 'click'){
?>iระบบเช็คเวลาเรียน</div>
<table width="840" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="6%" align="center" bgcolor="#E8E8E8">ลำดับ</td>
<td width="9%" bgcolor="#E8E8E8"><div align="center">รหัส</div></td>
<td width="30%" bgcolor="#E8E8E8"><div align="center">ชื่อ-สกุล</div></td>
<td width="11%" bgcolor="#E8E8E8"><div align="center">ระดับชั้น</div></td>
<td width="9%" bgcolor="#E8E8E8"><div align="center">ห้อง</div></td>
<td width="8%" bgcolor="#E8E8E8"><div align="center">ขาด</div></td>
<td width="8%" bgcolor="#E8E8E8"><div align="center">ลา</div></td>
<td width="8%" bgcolor="#E8E8E8"><div align="center">มาสาย</div></td>
</tr>
<?
//========================================================
$sql = "SELECT no_learning.num,student.Stu_ID, no_learning.Stu_ID, student.Stu_Name, student.Stu_LName, student.Stu_Clase, student.Stu_Room, no_learning.date_no, no_learning.nouth_no, no_learning.year_no
FROM no_learning INNER JOIN student ON no_learning.Stu_ID = student.Stu_ID
WHERE (
(
(
student.Stu_ID
) like '%$stu_id%'
)
AND(
(
student.Stu_Name
) like '%$stu_name%'
)
AND(
(
student.Stu_Clase
) like '%$Stu_clase%'
)
AND(
(
student.Stu_Room
) like '%$Stu_Room%'
)
)
ORDER BY `student`.`Stu_ID` DESC ";
$result=mysql_query($sql) or die($sql."<br/>\n".mysql_error());
//$num_reg=mysql_num_rows($result);
//========================================================
if(mysql_num_rows($result)=='0')
{
echo"<font color='#FF0000' size='4' align='center'>Not found</font>";
}
else
{
//===============================================
$i = 0;
while($rs=mysql_fetch_array($result))
{
$i++;
if($i%2==0)
{
$bg = "#E8E8E8";
}
else
{
$bg = "#FFFFFF";
}
echo"<tr bgcolor=$bg >";
//===============================================
echo"<td align=center>$i </td>";
echo"<td align='center'>$rs[Stu_ID]</td>";
echo"<td>$rs[Stu_Name] $rs[Stu_LName]</td>";
echo"<td align='center'>$rs[Stu_Clase]</td>";
echo"<td align='center' >$rs[Stu_Room]</td>";
?>
<td align="center" bgcolor="#CCCCCC">
<label></label>
</a>
<label></a>
<INPUT TYPE="radio" NAME="chk_val[<?php echo $rs[num];?>]" value="<?php echo $rs[sum_onlearing];?>" id="radio[]" <?php echo $chked;?>>
</a></label></td>
<td align="center" bgcolor="#FFCCCC">
<label></label>
</a>
<INPUT TYPE="radio" NAME="chk_val[<?php echo $rs[num];?>]" value="<?php echo $rs[sum_la];?>" id="radio[]" <?php echo $chked;?>>
<a href="JavaScript:if(confirm('Confirm ?')==true){window.location='permission_update_delete.php?Stu_ID=<?=$rs["Stu_ID"] ;?> & date_no=<?=$rs["date_no"] ;?> & nouth_no=<?=$rs["nouth_no"] ;?>& year_no=<?=$rs["year_no"] ;?> ';}"></a></td>
<td align="center" bgcolor="#FFCC99">
<label></label>
<INPUT TYPE="radio" NAME="chk_val[<?php echo $rs[num];?>]" value="<?php echo $rs[sum_lead];?>" id="radio[]" <?php echo $chked;?>>
<a href="JavaScript:if(confirm('Confirm ?')==true){window.location='permission_update_delete.php?Stu_ID=<?=$rs["Stu_ID"] ;?> & date_no=<?=$rs["date_no"] ;?> & nouth_no=<?=$rs["nouth_no"] ;?>& year_no=<?=$rs["year_no"] ;?> ';}"></a></td>
<?
echo"</tr>";
}
echo"</tr>";
?>
</table>
<br>
<label>
<div align="center">
<table width="840" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="604"><div align="right"></div></td>
<td width="78"><a href="javascript:chk_all();">selct all </a></td>
<td width="77"> </td>
<td width="81" align="left"><div align="right"></div></td>
</tr>
<tr>
<td> </td>
<td><a href="javascript:unchk_all();">un select all </a></td>
<td> </td>
<td align="left"> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Submit" value="ทำรายการที่เลือก"></td>
<td> </td>
<td align="left"> </td>
</tr>
</table>
</div>
</label>
</div>
</form>
<p> </p>
<p><br />
</p>
<p> </p>
</body>
</html>
</div>
<?php
}
}
}
?>
ประวัติการแก้ไข 2015-04-19 22:58:03 2015-04-19 23:04:25
Date :
2015-04-19 22:48:23
By :
wittayakorn1
เป็นของระบบ smss amss หรือเปล่าครับ
Date :
2015-04-19 23:22:01
By :
LAGO
5555555 คงต้องรอท่านอื่นต่อแล้วล่ะครับ วันนี้ ง่วงแล้วครับ ตอบตอนนี้เดี๋ยวเข้ารกเข้าพงอีก
Date :
2015-04-19 23:31:07
By :
Chaidhanan
ต้องการให้เป็นแบบนี้ใช่ไหมครับ
ใช้ค่าไอดีจาก user ดีกว่าครับ
Date :
2015-04-19 23:38:14
By :
LAGO
ข้างล่าง ตัวอย่างนะครับ ชื่อ ฟีลด์ ตารางอาจจะไม่ตรง แก้เอาเองนะครับ
php ตัวส่ง
Code (PHP)
while( $rs=$rsObj->fetch_assoc()){ ?>
<tr>
<td><input type="text" name="rec_id[]" value="<?=$rs['id']?>" ></td>
<td align="center" ><label>
<input name="chkDel[<?=$rs['id']?>]" type="radio" class='present'
value="มา" <?=($rs['status']==''? 'checked' : '')?>>
</label></td>
<td align="center" bgcolor="#FFCCFF"><label>
<input name="chkDel[<?=$rs['id']?>]" type="radio" class='absent'
value="ขาด" <?=($rs['status']=='ขาด'? 'checked' : '')?>>
</label></td>
<td align="center" bgcolor="#FFCCCC"><label>
<input name="chkDel[<?=$rs['id']?>]" type="radio" class='leave'
value="ลา" <?=($rs['status']=='ลา'? 'checked' : '')?>>
</label></td>
<td align="center" bgcolor="#FFCC99"><label>
<input name="chkDel[<?=$rs['id']?>]" type="radio" class='late'
value="มาสาย" <?=($rs['status']=='มาสาย'? 'checked' : '')?>>
</label></td>
</tr>
<?php
}
หมายเหตุ
<input type="text" name="rec_id[] " value="<?=$rs['id']?>" readonly >
สีแดงเป็น ตัวกำหนด input array
php ตัวรับ
Code (PHP)
foreach( $_POST['rec_id'] as $key=>$value){
$status=$db->real_escape_string($_POST['chkDel'.$value]);
$value=intVal($value);
$sql="update table set status='$status' where id=$value ";
$db->query($ssql) or die( $sql . "<br>" . $db->error);
}
ประวัติการแก้ไข 2015-04-21 20:27:10 2015-04-21 20:29:07 2015-04-21 20:31:33
Date :
2015-04-21 20:23:49
By :
Chaidhanan
Load balance : Server 03