在提交表格之前输入表格

时间:2014-01-08 07:57:03

标签: php mysql forms

我正在编写一个考勤系统,其中将显示部门工作人员的姓名,用户将通过单选按钮选择相应的考勤。我想在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

请帮忙

1 个答案:

答案 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