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

时间:2018-09-24 14:59:30

标签: php sql-server foreach

我当前正在用数据库中的行填充表。列之一是下拉列表,需要填充多个值。

即使该行不应为Bowling Green,每个下拉列表也会自动默认为Bowling Green。大多数行要么是东南行,要么是密歇根州,但不管是什么行,出于某种原因,它默认为Bowling Green。

如何让下拉菜单将所有值保留为下拉菜单中的选项(保龄球绿色,密歇根州,东南),但是下拉菜单的默认值是否为数据库中的值?

<?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 个答案:

答案 0 :(得分:2)

您需要将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";
    }
?>

答案 1 :(得分:0)

您可以像这样添加带有内联三元运算符的selected属性;

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

,并且从数据库中获取了所有数据之后,始终最好检查结果是否存在。