代码之家  ›  专栏  ›  技术社区  ›  Rataiczak24

未使用PHP foreach循环正确填充下拉列表

  •  0
  • Rataiczak24  · 技术社区  · 6 年前

    如何让下拉列表将所有值保留为下拉列表中的选项(bowling green、michigan、southeast),但让下拉列表值默认为数据库中的值?

    <?php
    $sql = "SELECT TOP 100 *
            FROM Table_OS_List
            ORDER BY [CURRENT_SKU] ASC";
    
    
    $drops = "SELECT [Purchasing_Group]
            FROM Table_OS_List
            GROUP BY [Purchasing_Group]";
    $drop = $dbh->query($drops);
    $allDrops = $drop->fetchAll();
    ?>
    
    <?php
    /* Foreach loop that brings in information to populate table */
    foreach ($dbh->query($sql) as $rows) {
    ?>
    <tr class="row">    
        <td class="old_sku" id="old_sku"><?php echo intval ($rows['OLD_SKU'])?></td>
        <td class="current_sku" id="current_sku"><?php echo intval ($rows['CURRENT_SKU'])?></td>
        <td class="id" id="id" style="display: none;"><?php echo intval ($rows['ID'])?></td>
    
    
        <td class="dropdown-select" id="purchgroup">
            <select id="selected_group" class="selected_group" disabled>
                <?php 
                foreach($allDrops as $dropdown) { ?>
    
                  <option class="choice" 
                          value="<?php echo $dropdown['Purchasing_Group'];?>">
                    <?php echo $dropdown['Purchasing_Group'];?>
                  </option>
    
                <?php } ?>
    
            </select>
        </td>
    
    
        <td><input type="button" class="edit" name="edit" value="Edit"></td>
        <td><input type="button" class="delete" name="delete" id="<?php echo intval ($rows['ID'])?>" value="Delete"></td>
    </tr>
    
    <?php } ?>
    

    它现在的样子。您可以看到它有多个选项,这正是我所需要的,但是,不管它在数据库中的值是多少,它都默认为Bowling Green:

    enter image description here

    enter image description here

    2 回复  |  直到 6 年前
        1
  •  2
  •   GrumpyCrouton    6 年前

    你需要添加 selected 属性为正确的选项。

    像这样:

    <option class="choice" 
          <?php echo $row['Purchasing_Group'] == $dropdown['Purchasing_Group'] ? "selected" : ""; ?>
          value="<?php echo $dropdown['Purchasing_Group'];?>">
    <?php echo $dropdown['Purchasing_Group'];?>
    </option>
    

    $row['Purchasing_Group'] 列是否在 Table_OS_List 桌子。

    这里的重要代码是 <?php echo $row['Purchasing_Group'] == $dropdown['Purchasing_Group'] ? "selected" : ""; ?> -这被称为 Ternary ,也可以这样展开:

    <?php
        if($row['Purchasing_Group'] == $dropdown['Purchasing_Group']) {
            echo "selected";
        }
    ?>
    
        2
  •  0
  •   Byrm Arf    6 年前

    您可以添加 selected

    <option class="choice" <?php echo $dropdown['Purchasing_Group'] ? ' selected' : null ?>   value="<?php echo $dropdown['Purchasing_Group'];?>">
                    <?php echo $dropdown['Purchasing_Group'];?>
                  </option>
    

    在从数据库中获取所有数据之后,检查结果是否存在总是很好的。