PHP ECHO table 使用 FOR EACH 将动态下拉列表作为一列

PHP ECHO table with dynamic dropdown as one column using FOR EACH

我有点卡住了,我正在尝试用 HTML 和 PHP 构建一个 table。好的,完成了。现在我想添加一个动态下拉列表作为列选项之一,但似乎无法弄清楚如何混合 PHP、HTML 和所需的 FOR EACH 循环。

我知道它目前是错误的,但我在下面发布了我一直在尝试的变量。

    echo '<td>' . "<select>". "<option value =" . $sf_name . '&nbsp;'. $sl_name . ">" . $sf_name . '&nbsp;'. $sl_name . "</option>" .
    foreach($Staff_On_Duty as $person){         
  "<option value =" . $sf_name_option=$person->Staff_First_Name . '&nbsp;'. $sl_name_option=$person->Staff_Last_Name . ">" . $sf_name_option . '&nbsp;'. $sl_name_option . "</option>" 
    }
    . "</select>" .'</td>';

我需要让当前选择的个人位于下拉列表的顶部,并提供将那个人改掉的选项。第一个 .sf_name 来自代码的较高位置,并为我提供了当前所选人员的姓名。 foreach 从 $Staff_On_Duty 查询运行,让我知道现在每个人都在工作。正确的做法是什么?

这就是我的做法,基本上只填写下拉列表并标记应该选择的选项(其他内容是偏好问题):

echo("<td><select>");
foreach($Staff_On_Duty as $person){         
    $sf_name_option=$person->Staff_First_Name; // separated for clarity, you could also use $person->Staff_First_Name everywhere
    $sl_name_option=$person->Staff_Last_Name;
    echo("<option value = $sf_name_option&nbsp;$sl_name_option");
    if (($sf_name_option == $sf_name) && ($sl_name_option == $sl_name)) echo (" selected"); // this is the relevant part, but make sure variable values match!
    echo(">$sf_name_option&nbsp;$sl_name_option</option>"); 
}
echo("</select></td>");

请注意,我没有加任何引号,因为我不知道你的变量需要什么,但如果你还没有它们,它会需要它们,即:

... value=\"$sf_name_option&nbsp;$sl_name_option\" ...