如何通过PHP通过“其他”选项传递下拉值?

时间:2019-07-14 17:16:47

标签: javascript php html dropdown

enter image description here我想将选项值传递给另一页。为此,我有一些选择。此外,还有一个“其他”选项,其中输入字段是隐藏的。我的JavaScript代码有效,即;选择“其他”会出现所需的文本输入。但是,在传递值(提交)时,“其他”选项(输入字段)传递值,但不传递常规选项。

function CheckColors(val) {
  var element = document.getElementById('color_change');
  if (val == 'pick a color' || val == 'others')
    element.style.display = 'block';
  else
    element.style.display = 'none';

}
<form action="action_dropdown.php" method="post">
  <select name="color" onchange='CheckColors(this.value);'>
    <option>pick a color</option>
    <option value="red">RED</option>
    <option value="blue">BLUE</option>
    <option value="others">others</option>
  </select>
  <input type="text" name="color" id="color_change" style='display:none;' />
  <input value="calculation" type="submit">
</form>

$myVariable = $_POST["color"];

echo $myVariable;

我希望我的输出是红色/蓝色/(选择其中任何一个时)。 再次,我希望输出为黄色(当我选择“ ohters”并输入“ yellow”时。)

成为新手,希望您的亲切合作。

1 个答案:

答案 0 :(得分:0)

您需要使用其他任何方式重命名输入元素:

<form action="action_dropdown.php" method="post">
  <select name="color" onchange='CheckColors(this.value);'>
    <option>pick a color</option>
    <option value="red">RED</option>
    <option value="blue">BLUE</option>
    <option value="others">others</option>
  </select>
  <input type="text" name="othercolor" id="color_change" style='display:none;' />
  <input value="calculation" type="submit">
</form>

提交表单后,您需要检查是否设置了othercolor。因此,您可以获得如下所示的颜色值:

$selectedColor = ($_POST['color'] == "others" ) ?  $_POST['othercolor']: $_POST['color'];

因此,您将可以访问选择值和输入值。希望对您有帮助!