输入字段数据调用未在表单选择中翻译

时间:2015-07-29 21:16:05

标签: php jquery sql ajax forms

我有一个用于将数据输入我的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">

1 个答案:

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

一对夫妇注意到:

  1. <select>也缺少placeholder属性。
  2. 我省略了您的isset()代码,因为包含每个<option>的内容非常详细和冗余。要多一点DRY,你应该做类似的事情:
  3. $fruit = $results['fruit'] ?? '';