相当无趣的问题,但我试过搜索,却找不到解决方案。我的问题是我有一个名为Off的表,它存储了所有员工的假期。但是,在工作人员休假之前,必须获得授权。我有一个查询来获取所有未经授权的假期,我将它们显示在一个html表中。问题是我每条记录需要2个单选按钮。一个用于授权,一个用于拒绝。显示单选按钮,但在浏览记录时,只能选择其中一个单选按钮。是否可以这种方式使用单选按钮?
<?php
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/Apollo/dbc.php";
include_once($path);
$rs_results = mysql_query("SELECT * FROM off WHERE IsItAuthorised='0' and isitsick='0' ORDER BY DayOff");
?>
<html>
<head>
<title>Administration Main Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
$limit = count($OffID);
if (isset($_POST['submit'])) {
//Assign each array to a variable
$id = $_POST['OffID'];
$answer = $_POST['radio'];
$limit = count($OffID);
$values = array(); // initialize an empty array to hold the values
for($k=0;$k<$limit;$k++){
$msg[] = "$limit New KPI's Added";
$query = "UPDATE Off SET IsItAuthorised = '{$answer[$k]}' WHERE OffID = '{$OffID[$k]}'";
}
$Event = "INSERT INTO events (UserName, Event ) VALUES ('$_SESSION[user_name]', 'Entered New KPI' )";
if (!mysql_query($query,$link)){
die('Error: ' . mysql_error());
} else {
mysql_query($Event);
echo "<div class=\"msg\">" . $msg[0] . "</div>";
}
}
?>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="14%" valign="top"><?php
?>
</td>
<td width="74%" valign="top" style="padding: 10px;">
<p><?php
if(!empty($msg)) {
echo $msg[0];
}
?></p>
<p>
<?php
$cond = '';
$sql = "select * from off ";
$rs_total = mysql_query($sql) or die(mysql_error());
$total = mysql_num_rows($rs_total);
?>
<p>
<form name "searchform" action="/Apollo/Admin/HolidayRequests" method="post">
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="0">
<tr class="mytables">
<td width="4%"><font color="white"><strong>ID</font></strong></td>
<td width="4%"> <font color="white"><strong>Staff Member</font></strong></td>
<td width="10%"><font color="white"><strong>Day Off</font></strong></div></td>
<td width="10%"><font color="white"><strong>Is It Authorized</font></strong></div></td>
<td width="15%"> </td>
</tr>
<tr>
<td> </td>
<td width="10%"> </td>
<td width="17%"><div align="center"></div></td>
<td> </td>
</tr>
<?php while ($rrows = mysql_fetch_array($rs_results)) {?>
<tr>
<td><input type="" name="id[]" id="id[]" size="4" value="<?php echo $rrows['OffID'];?>" /></td>
<td><?php echo $rrows['StaffMember']; ?></td>
<td><?php echo date('d/m/Y', strtotime($rrows['DayOff']));?></div></td>
<td> <span id="approve<?php echo $rrows['id']; ?>">
<?php if(!$rrows['IsItAuthorised']) { echo "Pending"; } else {echo "Authorized"; }?>
</span> </td>
<td>
<input type="radio" name="radio[0]" id="radio[0]" value="1" />Approve
<input type="radio" name="radio[1]" id="radio[1]" value="0" />Deny
</td>
</tr>
<?php } ?>
</table>
<input name="submit" type="submit" id="submit" value="Submit">
</form>
</p>
<?php
?>
<p> </p>
<p> </p>
<p> </p>
<p> </p></td>
<td width="12%"> </td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:3)
您的问题与您使用“name”属性有关 - 此属性在单选按钮上以特殊方式使用。
当您单击单选按钮时,将取消选择所有其他具有相同名称的单选按钮 - 在您的情况下,您将在页面中将一半的单选按钮放在一个组中,一半放在另一个组中,这可能会解释为什么你只能选择一个。我想你如果点击右边的单选按钮,你实际上可以同时选择两个。
要解决此问题,您需要对while循环进行某种计数,即:
$resultNumber = 0;
while ($rrows = mysql_fetch_array($rs_results)) {
然后你需要在单选按钮的名称(以及id)中使用这个数字 -
<input type="radio" name="radio<?php echo $resultNumber; ?>" id="radio<?php echo $resultNumber; ?>" value="1" />
然后在每次迭代结束时简单地递增$resultNumber
-
<?php
$resultNumber++;
}
?>
或者,您可以使用您要查询的数据库表中的行的主键来区分组,但不知道表结构我无法为其提供示例代码。
进一步阅读单选按钮(也是名称属性问题的来源): http://www.echoecho.com/htmlforms10.htm
答案 1 :(得分:0)
我使用了复选框,而不是单选按钮。每个复选框都将值设置为不同的列。对我来说应该是显而易见的。