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

时间:2012-06-19 07:08:25

标签: php mysql html

我正在创建一个用户表单,该表单需要人们回来并在不同时间完成表单的功能,这需要它间歇性地保存其内容。问题是,如果用户提交了一些信息,请回来再提交一些信息,它会删除以前的内容。为了解决这个问题并提高可用性,我设置了表单来回调数据库中的内容,并在用户编辑内容之前将其插入到表单中。这对于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”在数据库中然后将“高”设置为选定状态。

有谁知道怎么做?我一直试图没有成功。干杯

1 个答案:

答案 0 :(得分: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>
然而,有更好的方法(在代码可读性和管理方面)来实现这一目标。