【问题标题】:Retain select option inside php if statements在 php if 语句中保留 select 选项
【发布时间】:2016-06-03 15:20:35
【问题描述】:

我正在尝试创建一个单独的 PHP 页面,该页面根据正在发布的表单中的隐藏输入字段打开推销员或客户窗口。对我来说棘手的部分是我还需要两个选择选项下拉列表,它们基于发布的相同隐藏输入字段出现,但在提交后也保留它们的值。

我知道如何像这样保留表单的值..

<form action="" method="post">
    <select name="newyear">
        <option <?php if ($sqlyear == '2015cust') { ?>selected="true" <?php }; ?>value="2015cust">2015</option>
        <option <?php if ($sqlyear == '2016cust') { ?>selected="true" <?php }; ?>value="2016cust">2016</option>
    </select>
</form>

但是当我尝试在我的 PHP if 语句中实现此方法时,它不会保留所选选项。

if ($open == 'salesman_window'){
    echo "This is salesman dropdown menu";
    echo "$sqlyear";
    echo "<form action='' method='post'>";
    echo "<input type='hidden' name='newyear_trigger' value=''>";
    echo "<input type='hidden' name='window' value='salesman_window'>";
    echo "<select name='newyear'>";
    echo "<option if ($sqlyear == '2015users') { selected='true'  };  value='2015users'> 2015</option>";
    echo "<option if ($sqlyear == '2016users') { selected='true'  };  value='2016users'>2016</option>";
    echo "</select>";
    echo "<button class='documentation_button'>Submit</button>";
    echo "</form>";

}

if ($open == 'customer_window'){
    echo "this is customer dropdown menu";
    echo "$sqlyear";
    echo "<form action='' method='post'>";
    echo "<input type='hidden' name='newyear_trigger' value=''>";
    echo "<input type='hidden' name='window' value='customer_window'>";
    echo "<select name='newyear'>";
    echo "<option if ($sqlyear == '2015cust') { selected='true'  }; value='2015cust'>2015</option>";
    echo "<option if ($sqlyear == '2016cust') { selected='true'  }; value='2016cust'>2016</option>";
    echo "</select>";
    echo "<button class='documentation_button'>Submit</button>";
    echo "</form>";
}
?>

我尝试使用多个 echo ""; 来拆分选项。并在那里尝试了一些“..”,但要么出现语法错误,要么只是不保留选择。一切都可以根据发布的内容显示正确的下拉菜单,但我无法保留选择选项。每次选择下拉选项时,$sqlyear 肯定会获得正确的值,所以我知道也不是这样。有人可以帮忙吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    几个选项:

    1. 在你的回声中使用三元运算符:

      echo "<option" . (($sqlyear == '2015users') ? " selected='true'" : '') 
                 . " value='2015users'>2015</option>";
      echo "<option" . (($sqlyear == '2016users') ? " selected='true'" : '') 
                 . " value='2016users'>2016</option>";
      

    1. 继续使用 if,但不要过多地打开/关闭 PHP 标记:

      <option <?php if ($sqlyear == '2015users') echo " selected='true'"; ?> value='2015users'>
          2015</option>
      <option <?php if ($sqlyear == '2016users') echo " selected='true'"; ?> value='2016users'>
          2016</option>
      

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 2014-02-15
      • 2020-06-15
      相关资源
      最近更新 更多