保留php if语句中的select选项

时间:2016-06-03 15:20:35

标签: php

我正在尝试创建一个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肯定会获得正确的值,所以我知道它也不是。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

有两种选择:

  1. 在echo中使用三元运算符:

    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>