【问题标题】:Drop down field does not show saved value as selected下拉字段未将保存的值显示为选中状态
【发布时间】:2021-12-22 14:44:13
【问题描述】:

我的网站是使用 Codeigniter 构建的,我正在尝试通过保存字段来修复错误。我的选择输入将保存到数据库并显示在网站的前端,但如果我重新访问页面进行任何更改,下拉菜单将重置为默认的空字段,我需要重新选择正确的选项。文本字段都按预期正确保存。

这是未保存选择的表单域

     <div class="col-md-3">
          <label>Condition</label> 
          <select data-placeholder="Choose Condition..." class=" select-search" tabindex="2"  name="condition">
             <option value=""></option>
             <option value="New">New</option>
             <option value="Used">Used</option>
          </select>
     </div>

这是一个可以正常工作并按预期保存的文本字段

    <div class="col-md-3">
         <label>Year</label> 
         <input type="text" name="year"  class="form-control" value="<?php if(isset($result['year'])){echo $result['year'];};?>">
    </div>

最后,这里有一些可能相关的 PHP?它位于页面顶部。

    <?php
$arr = array();
if (isset($result)) {
    $id = $result['id'];
    $parent_id = $result['parent_id'];
    $path = admin_url('vehicles/update');
} else {
  $id = '';
  $parent_id = '';
    $path = admin_url('vehicles/save');
}
?>

【问题讨论】:

标签: php html forms codeigniter select


【解决方案1】:

您需要选择一个选项,就像您在输入汽车年时所做的那样。

检查什么类型的条件(新的或使用的)并选择它 你可以这样做 使用此网站寻求帮助https://www.w3schools.com/tags/att_option_selected.asp

 
<div class="col-md-3">
  <label>Condition</label> 
  <select data-placeholder="Choose Condition..." class=" select-search" tabindex="2"  name="condition">
     <option value=""></option>
      <?php 
           if($result['codition'] == 'new'){ 
               $new_selected = 'selected';
               $used_selected = '';
            }else{
               $new_selected = '';
               $used_selected = 'selected';
            }
      ?>
     <option value="New" <?php echo $new_selected; ?> >New</option>
     <option value="Used" <?php echo $used_selected; ?> >Used</option>
   </select>
 </div>

【讨论】:

  • 感谢您的帮助。这是有道理的,但是当我尝试您的代码时,我收到一条错误消息,提示“语法错误,意外 T_ECHO”
  • 试试 isset($result['condition_new']) ?打印'选择':打印'';
  • 我有以下代码半工作,因为它会保存选择。但是现在它总是保存为默认值,因为它出现在代码之后。我尝试将 if 替换为 else,但没有奏效。 &lt;option value="new" name="new" &lt;?php if(isset($result['condition'])) { echo 'selected'; '';}; ?&gt; &gt;New&lt;/option&gt; &lt;option value="used" name="used" &lt;?php if(isset($result['condition'])) { echo 'selected'; '';}; ?&gt; &gt;Used&lt;/option&gt;
  • 看到你正在使用相同的验证两个不同的东西编码,“NEW”和“USED”,我将编辑答案以展示你如何做到这一点
【解决方案2】:

如果在选项中,则必须使用一行。

<option value=""></option>
<option value="New" <?= (isset($result['condition']) && ($result['condition']!=''))? 'selected' : NULL ?> >New</option>
<option value="Used" <?= (isset($result['condition']) && ($result['condition']!=''))? 'selected' : NULL ?> >Used</option>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2013-12-27
    相关资源
    最近更新 更多