【问题标题】:form input value before Submit the Form提交表单前的表单输入值
【发布时间】:2014-01-08 07:57:02
【问题描述】:

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

我还尝试通过 foreach 循环中的以下代码检查输出:

echo var_dump($out['att']);

但结果只显示 NULL

请帮忙

【问题讨论】:

  • 您可以连接回声,例如echo "&lt;/table&gt;&lt;p align='center'...",甚至只是使用 "string"."string" 组合字符串

标签: php mysql forms


【解决方案1】:

我可以通过以下方式访问您的单选按钮的值:

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

【讨论】:

  • 我尝试了你的建议。但是当我将 $out[] 更改为 $out 时,显示已更改如下:
  • 下?如果是长评论,您可以在上面的帖子中将其作为注释进行编辑。
猜你喜欢
  • 2015-08-02
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
  • 2015-10-12
  • 1970-01-01
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多