【发布时间】:2016-08-25 08:39:47
【问题描述】:
我在 admin.php 文件的表单中有多个提交按钮。对于管理员执行的每个操作,我在 admin.php 文件中都有一个提交按钮。管理员的一项操作(每日考勤)是将员工的考勤标记为出席或缺席。
当我点击“每日考勤”的提交按钮时,会出现 3 个下拉选项,让管理员可以选择年、月和日期来标记考勤。除此之外,还会显示一个表,其中包含员工表中的所有记录。对于显示的每条记录,我正在动态生成一个出勤单选按钮(值:出席和缺席)和一个提交按钮(名称 = 标记)。管理员只需使用单选按钮将任何一名员工标记为存在/缺席,然后单击相邻的提交按钮(标记)以将此记录插入到考勤表中。
每条记录的选择(年、月、日)和单选按钮是动态生成表单的一部分。在这种形式中,我将 ACTION 属性指定为“mark-attendance.php”和 method = POST。
现在,我想传递年、月和日期的选定值;通过 POST 方法将出席或缺席的出勤值,以及正在标记出勤记录的员工的员工 id 到“mark-attendance.php”页面。
我能够检索年、月、日(选择)和出勤值(出席/缺席)的值。但我无法将该人的员工 ID 值传递给 "mark-attendance.php" ,因为它不是表单输入。
如何传递这个值?我想使用这个值在考勤表中为该特定员工 ID 插入一条记录。
任何帮助将不胜感激:
这是我的代码:我已经编辑了空间限制的代码
switch ($_POST['admin']) {
// if admin=>Daily Attendance
case 'Daily Attendance':
$sql_sel_emp = "select * from employee";
$res_emp = mysqli_query($conn,$sql_sel_emp);
$aff_sel = mysqli_affected_rows($conn);
//display a calendar and table with records only if records exist
if ($aff_sel>0) {
echo "<form action='test-message.php' method='POST'>
<table>
<br><br>
<tr>
<td>
<select name='year'>
<option value='2016'>2016</option>
<option value='2017'>2017</option>
</select>
</td>
<td>
<select name='month'>
<option value='01'>January</option>
<option value='02'>February</option>
</select>
</td>
<td>
<select name='day'>
<option value='01'>1</option>
<option value='02'>2</option>
</select>
</td>
</tr>
</table><br><br>";
echo "<table border='1' cellpadding='1' cellspacing='1'>
<tr>
<th>Employee Image</th>
<th>Employee Id</th>
<th>Employee Name</th>
<th>Employee Email</th>
<th>Employee DOB</th>
<th>Employee Designation</th>
<th>Employee Department</th>
<th>Attendance Status</th>
<th>Action</th>
</tr>";
while ($row=mysqli_fetch_assoc($res_emp)) {
echo "<tr>
<td>";?><img src="images/<?php echo $row['emp_image'];
?>" height="100" width="100" ><?php echo "</td>
<td>".$row['emp_id']."</td>
<td>".$row['emp_name']."</td>
<td>".$row['emp_email']."</td>
<td>".$row['emp_dob']."</td>
<td>".$row['emp_designation']."</td>
<td>".$row['emp_department']."</td>
<td><input type='radio' name='attendance'
value='present'>Present<br>
<input type='radio' name='attendance' value='absent'>Absent<br></td>
<td>
<input type='submit' name='mark' value='Mark Attendance'>
</td>
</tr>";
}
echo "</table></form>";
//display message if there are no records in temporary_employee table
} else {
$msg="No records found";
}
break;
【问题讨论】:
-
您为什么不创建一个
<input type="hidden" />并将其值设置为您要发送的任何内容? -
@roberto06 ,我能够通过隐藏类型输入字段传递员工 ID 的值。但我面临的问题是,无论我点击哪个员工,我都只能通过 POST 方法在另一个页面中获取最后一个员工的员工 ID。我只是将下面的代码添加到我现有的代码中,我正在从员工表中获取所有记录。
跨度>
-
每个用户应该有一个
<form />元素,这里的问题是有多个同名的隐藏字段,只有一种形式,所以它会取最后一个值。 -
@roberto06..i 可以为每个员工使用一个表单元素。但我无法理解我将如何传递 yyyy,mm,dd 选择的值,这将是来自另一种形式的输入。此日期选择仅由管理员使用一次。任何帮助将不胜感激。
-
想到两个解决方案: 1. 如果您使用多个
<form />元素,请使用下拉列表中的值在每个<form />中创建<input type="hidden" />元素(可以使用简单的 JS)。 2.只有一个<form />元素,你可以将你的<input type='submit' name='mark' value='Mark Attendance'>元素转换成<button type="submit" name="mark" value="THE_ELEMENT_ID_YOU_WISH_TO_PASS">Mark Attendance</button>,这样$_POST['mark']就会被设置为你想要传递的ID。