我正在编写一个考勤系统,其中将显示部门工作人员的姓名,用户将通过单选按钮选择相应的考勤。我想在mysql数据库中写出勤记录。 为此,我试图准备一个数组,我无法传递所选单选按钮的值。请帮忙。 示例代码如下:
<?php
$qry1="select * from master where office='ECZO_IT' order by cadre desc,srno";
$result1=mysql_query($qry1,$con);
$sl=1;
echo "<form method='post' action=''>";
echo "<table align='center' border='1' cellpadding='0' cellspacing='0' style='border- collapse: collapse' bordercolor='#111111' width='800' id='AutoNumber1' height='219'>";
echo "<tr><th colspan='14' bgcolor='#C0C0C0' align='center'>Attendance Report</th></tr>";
echo "<tr bgcolor='#C0C0C0' align='center'><th>Sl.</th>";
echo "<th >SR No.</th>";
echo "<th>Name</th>";
echo "<th>Designation</th>";
echo "<th colspan='10' align='center'>Attendance</th></tr>";
while ($data=mysql_fetch_row($result1))
{
echo "<tr><td align='center'>$sl</td>";
echo "<td align='center'>$data[0]</td>";
echo "<td>$data[1]</td>";
echo "<td align='center'>$data[4]</td>";
echo "<td bgcolor='#C0C0C0' align='center'>Present</td>";
echo "<td><input type='radio' name='r1[$sl]' value='PRESENT' id='at' checked></td>";
echo "<td bgcolor='#C0C0C0' align='center'>Training</td>";
echo "<td><input type='radio' name='r1[$sl]' value='TRAINING' id='at'></td>";
echo "<td bgcolor='#C0C0C0' align='center'>Tour</td>";
echo "<td><input type='radio' name='r1[$sl]' value='TOUR' id='at'></td>";
echo "<td bgcolor='#C0C0C0' align='center'>Leave</td>";
echo "<td><input type='radio' name='r1[$sl]' value='LEAVE' id='at'></td>";
echo "<td bgcolor='#C0C0C0' align='center'>Absent</td>";
echo "<td><input type='radio' name='r1[$sl]' value='ABSENT' id='at'></td></tr>";
$out[]= array ('srno' => $data['0'], 'ename' => $data[1], 'att' => $_POST['r1']);
$sl=$sl+1;
}
echo "</table>";
echo "<p align='center'><input type='submit' name ='s1' value='Submit'></p>";
echo "</form>";
foreach($out as $row)
{
echo $row['srno'].'----'.$row['ename'].'----'.$row['att']."<br/>";
}
?>
请建议是否有其他出路
我尝试在
下更改数组$out = array ('srno' => $data['0'], 'ename' => $data[1], 'att' => $_POST['r1']);
在修改之前,结果是这样的:
343587 ---- SUNIL PRASAD OJHA ----数组
343607 ---- MUKESH KUMAR JHA ----数组
343701 ---- PRABHAT RANJAN ----数组
修改后的结果如下: 3 ---- ---- 3 3
点---- ---- P P
我还尝试通过foreach循环中的以下代码检查输出:
echo var_dump($out['att']);
但结果只显示NULL
请帮忙
答案 0 :(得分:0)
我可以通过以下方式访问您的单选按钮的值:
var_dump($out[0]['att']);
以这种方式纠正你的阵列:
$out = array ('srno' => $data['0'], 'ename' => $data[1], 'att' => $_POST['r1']); //removed [] from $out
将其视为:
echo $out['att'][1];
1是因为你的单选按钮是一个输入数组而你的$ sl值是1
我不知道你为什么需要foreach循环,但你也可以这样使用它:
$data[1]='test';
$data2[1]='test2';
$out= array ('srno' => $data, 'ename' => $data2, 'att' => $_POST['r1']);
$i=1;
foreach($out as $key=>$val)
{
echo $key.'='.$val[$i]."<br/>";
}
//Prints: srno=test
// ename=test2
// att=TRAINING