1

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

<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”在数据库中,然后设置“高”到选定状态。

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

4

1 回答 1

1

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

    <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>

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

于 2012-06-19T07:22:07.967 回答