【问题标题】:trying to have one choice selected in each drop down试图在每个下拉菜单中选择一个选项
【发布时间】:2021-06-21 08:25:45
【问题描述】:

我在 html/php 中创建了一个表。在最左边的单元格中,我必须有一个带有各种颜色的下拉菜单。我的问题是如何制作它,以便当用户在下拉列表中选择一种颜色,并尝试在另一种颜色中选择它时,它不允许他们选择相同的颜色。我还必须以一种非侵入性的方式提醒用户,不能多次选择颜色。

<!DOCTYPE html>
  <head>
    <meta charset="UTF-8">
    <style>
      table, th, td {
      border: 1px solid black;
      border-collapse: collapse;
      }
    </style>
  </head>
  <body>
    <h1>Color Coordinate Generation</h1>
    <?php
      $rowcol = $_GET["rowcol"];
      
      $numColor = $_GET["numColor"];
      
      echo "<table style='width:80%'>";
      
      for($i = 0; $i < $numColor; $i++) {
      
        echo "
      
          <tr>
      
          <td style = 'width: 20%'><label for='color'></label>";
      
      ?>
    <select name="color" id="color">
      <option value='red'>Red</option>
      <option value='orange'>Orange</option>
      <option value='yellow'>Yellow</option>
      <option value='green'>Green</option>
      <option value='blue'>Blue</option>
      <option value='purple'>Purple</option>
      <option value='grey'>Grey</option>
      <option value='brown'>Brown</option>
      <option value='black'>Black</option>
      <option value='teal'>Teal</option>
    </select>
    <?php
      echo "</td>
      
      <td style = 'width: 80%'> hi</td>
      
      </tr>";
      
      }
      
      echo "
      
      </table>";
      
      ?>
    <br>
    <br>
    <?php
      $alphabet = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
      
      echo "<table style='width:100%'>";
      
      echo "<td> </td>";
      
      for($i = 0; $i < $rowcol; $i++) {
      
      echo "
      
      <td style = 'width: 2%'>";
      
      echo $alphabet[$i];
      
      }
      
      echo "</td>";
      
      for($i = 1; $i <= $rowcol; $i++) {
      
      echo "<tr>
      
      <td style = 'width: 2%'>";
      
      echo $i;
      
      }
      
      echo "</td></tr>";
      
      ?>
  </body>
</html>

【问题讨论】:

  • how do I make It so that when a user selects a color in the dropdown, and they try to select It in another one ...你忘了说完这句话吗?
  • 我认为它在编辑中被删除了。但是我说完了!谢谢
  • 好的,谢谢。答案是“使用 javascript 检查每个下拉菜单的内容,只要其中一个发生更改,并确保值不匹配”

标签: php html html-table


【解决方案1】:

PHP 不应(也不能)参与用户与其浏览器的交互。当有人从下拉列表中选择颜色时,JavaScript 有责任从其他下拉列表中删除所选元素。这是一个简单的 JS 代码,你应该可以通过一些搜索来编写它。

提交后仍然存在验证表单的问题(如果有的话)。这就是 PHP 应该发挥作用的时候。首先,您必须将select 元素的name 属性更改为colors[],这样PHP 将在一个数组中给出选定的结果。然后你应该检查数组中的重复值(also very straight-forward code),如果有任何重复,抛出异常并通知用户,如果没有,那么你很高兴。

希望它能为您指明解决问题的正确途径。

P.S:男孩!好久没看到这样的代码了!

【讨论】:

    猜你喜欢
    • 2017-04-30
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多