我有一个用于将数据输入我的sql数据库的表单。当您提交表单时,它会正确保存,但是当您"检索"要在表单中放回的数据,它不会保存"选项"元素。有谁知道为什么会这样?
表格数据样本(确实可以保存但不会从数据库中返回选项):
<select value="<?php echo isset($results['fruit']) ? $results['fruit']: ''; ?>" class="form-control" name="data[fruit]" placeholder="Fruit">
<option value="Unset">Fruit:</option>
<option value="Apples">Apples</option>
<option value="Bananas">Bananas</option>
</select>
表单数据样本(将保存并返回数据)
<input value="<?php echo isset($results['data']['fruit']) ? $results['data']['fruit']: ''; ?>" type="text" class="form-control" name="data[fruit]" id="fruit" placeholder="Fruit">
答案 0 :(得分:1)
<select>
个元素没有value
属性。而是将selected
属性添加到相应的<option>
元素。所以,你必须做这样的事情:
<select class="form-control" name="data[fruit]">
<option value="Unset">Fruit:</option>
<option value="Apples" <?= $fruit == 'Apples' ? 'selected' : '' ?>>Apples</option>
<option value="Bananas" <?= $fruit == 'Bananas' ? 'selected' : '' ?>>Bananas</option>
</select>
一对夫妇注意到:
<select>
也缺少placeholder
属性。isset()
代码,因为包含每个<option>
的内容非常详细和冗余。要多一点DRY,你应该做类似的事情:$fruit = $results['fruit'] ?? '';