9阅网

您现在的位置是:首页 > 知识 > 正文

知识

php - PHP 将复选框和下拉框的值传递给下一页 POST

admin2022-11-07知识14

我在PHPMYSQL中尝试一个解决方案,其中有一个国家列表的复选框。某些国家有一个叫做实体的东西,它是一个下拉框,显示Micro,Small,Large。这个实体下拉框只在某些国家出现。我可以将复选框的选中值传递到下一页。但我需要把下拉框中选择的实体的值也传递给下拉框。Iam not able to acheieve that. 我的代码即发布在下面。这里我需要把下拉框(select - entity_selected)的值也传递到下一页。

<?php 
            echo '<table border="1">';
            while($row1 = mysqli_fetch_array($result_country))  {
            $country1 = $row1["country"];
            $entity1 = $row1["entity"];
            echo '<tr>';
            ?>
            <td><input name="check_list[]" type="checkbox" value="<?php echo $country1;?>"> <?php echo $country1;?></td>
            <td>

            <?php 
            if($entity1 == 'Yes'){ ?>
            <select name="entity_selected">

               <option value="Micro">Micro</option>
               <option value="Small">Small</option>
               <option value="Large">Large</option>

            </select>
            <?php }

            ?>
            </td>

            <?php echo '</tr>'; } ?>
            </table>

下一页的代码如下,以获得选中国家的复选框。

    if(!empty($_POST['check_list'])) {
        foreach($_POST['check_list'] as $check) {
            echo $check;
        }
    }

我如何才能得到下拉值在这里我得到的复选框(国家值正确)。有谁能帮我解决这个问题?



【回答】:

<form method="POST" action="nextpage.php">
  <table border="1">
    <?php
      $i = 0;
      while($row1 = mysqli_fetch_array($result_country))  {
        $country1 = $row1['country'];
        $entity1 = $row1['entity'];
        echo "<tr>";
        ?>
          <td>
            <input name="check_list<?=$i ?>" type="checkbox" value="<?php echo $country1;?>"> <?php echo $country1;?>
          </td>
          <td>
            <?php
              if($entity1=="Yes") {
                ?>
                  <select class="form-control selectpicker" name="entity_selected<?=$i ?>">
                    <option value="Micro">Micro</option>
                    <option value="Small">Small</option>
                    <option value="Large">Large</option>
                  </select>
                <?php
              };
            ?>
          </td>
        <?php
        $i++;
        echo "</tr>";
      };
    ?>
  </table>
</form>

nextpage.php:

<?php
  $entities = $checklist = [];
  foreach($_POST as $k => $v) {
    if(preg_match("/^checklist(\d+)$/", $k, $matches))
      $checklist[intval($matches[0])] = $v;
    unset($matches);
    if(preg_match("/^entity_selected(\d+)$/", $k, $matches))
      $entities[intval($matches[0])] = $v;
  };
?>