【问题标题】:using radio buttons in a html table?在 html 表中使用单选按钮?
【发布时间】:2012-02-23 23:46:13
【问题描述】:

相当愚蠢的问题,但我尝试过搜索,但找不到解决方案。我的问题是我有一个名为 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%">&nbsp;</td>
          </tr>


          <tr> 
            <td>&nbsp;</td>
            <td width="10%">&nbsp;</td>
            <td width="17%"><div align="center"></div></td>
            <td>&nbsp;</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>


      &nbsp;</p>
      <?php


      ?>


      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p></td>
    <td width="12%">&nbsp;</td>
  </tr>
</table>
</body>
</html>

【问题讨论】:

  • 您的意思是每行一次只能选择一个单选按钮?

标签: php mysql html button radio


【解决方案1】:

您的问题与您对“名称”属性的使用有关 - 此属性在单选按钮上以特殊方式使用。

当您单击一个单选按钮时,所有其他具有相同名称的单选按钮都将被取消选择 - 在您的情况下,您将页面上的一半单选按钮在一组中,另一半在另一组中,这可能可以解释为什么只能选择一个。如果您单击右侧的单选按钮,我想您实际上可以同时选择两个。

要解决此问题,您需要对 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

【讨论】:

    【解决方案2】:

    我没有使用单选按钮,而是使用了循环显示的复选框。每个复选框为不同的列设置一个值。一开始对我来说应该是显而易见的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2021-05-09
      相关资源
      最近更新 更多