选择字段下拉列表,根据 mysql 字段和 php 变量状态选择状态


Select field drop down select state based on mysql field and php variable status

我正在创建一个用户表单,该表单需要人们在不同时间返回并完成表单的功能,这需要它间歇性地保存其内容。问题是,如果用户提交一些信息,回来并提交更多信息,它会删除之前的内容。为了解决这个问题并提高可用性,我为表单设置了它,以从数据库中回调内容,并在用户编辑内容之前将其插入表单中。这适用于文本区域,但不适用于下拉列表等。我查看了其他代码,这些代码允许您为数据库中匹配的内容提供选定状态。但是,与数据库中具有下拉内容的所有其他示例不同,我的示例被硬编码到站点中,如下所示:

<div class="block-a">
    <label>Likelihood</label>
    <select class="large-input" name="questions['.$questions['id'].'][1]">
        <option></option>
        <option value="1">Negligible</option>
        <option value="2">Low</option>
        <option value="3">Medium</option>
        <option value="4">High</option>
        <option value="5">Very High</option>
        <option value="N/A">Not Applicable</option>
    </select>
</div>
因此,假设在下午 1 点,

用户将可能性设置为"4",然后在下午 3 点返回,它现在所做的只是返回到空白,我希望它与数据库通信并看到"4"在数据库中,然后将"高"设置为所选状态。

有谁知道如何做到这一点?我一直在尝试没有成功。干杯

只是为了回答你的问题 - 假设上面的列表是硬编码的,并且你想坚持下去......

    <option <?php echo (isset($var_which_holds_value) && $var_which_holds_value == '') ? 'selected="selected"' : ''); ?>></option>
    <option value="1" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 1) ? 'selected="selected"' : ''); ?>>Negligible</option>
    <option value="2" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 2) ? 'selected="selected"' : ''); ?>>Low</option>
    <option value="3" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 3) ? 'selected="selected"' : ''); ?>>Medium</option>
    <option value="4" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 4) ? 'selected="selected"' : ''); ?>>High</option>
    <option value="5" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == <?php echo (isset($var_which_holds_value) && $var_which_holds_value == '') ? 'selected="selected"' : ''); ?>) ? 'selected="selected"' : ''); ?>>Very High</option>
    <option value="N/A" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 'N/A') ? 'selected="selected"' : ''); ?>>Not Applicable</option>

但是,有更好的方法(在代码可读性和管理方面)来实现这一点。