【问题标题】:Getting Selectbox Option Value isn't working获取选择框选项值不起作用
【发布时间】:2026-02-24 15:35:01
【问题描述】:

我正在尝试从选择框中获取选项值,但不起作用:

HTML:

<form action="" method="post" name="module_gen">
    <select id="module_gen_select_ver" name="module_gen_select_ver">
        <option value="joomla15">Joomla 1.5</option>
        <option value="joomla25_30">Joomla 2.5/3.0</option>
    </select>
</form>

PHP:

if(isset($_POST['module_gen_select_ver'] ) == 'joomla15') {
    $xmldata = '</install>';
}
elseif(isset($_POST['module_gen_select_ver'] ) == 'joomla25_30') {
    $xmldata = '</extension>';
}

当我点击提交按钮时,它似乎没有考虑选项的价值。

谁能告诉我哪里出错了?

【问题讨论】:

  • 如果你 var_dump $_POST,你会看到什么?

标签: php html forms post


【解决方案1】:

你的 if 条件错误。

if(isset($_POST['module_gen_select_ver'] ) == 'joomla15')

正在获取isset($_POST['module_gen_select_ver'] )的返回值,这是一个布尔值,然后将其与'joomla15'进行比较,因此条件不成立。应该是:

if(isset($_POST['module_gen_select_ver']) and $_POST['module_gen_select_ver'] == 'joomla15')

条件仍然是安全的,就好像它没有设置一样,第二个条件甚至不会被读取用于所有意图和目的。

或者您可以简单地将 if 和 elseif 都包装在 if(isset($_POST['module_gen_select_ver']) 中,然后将其从 if 和 elseif 中删除,因此:

if(isset($_POST['module_gen_select_ver'])
{
    if($_POST['module_gen_select_ver'] == 'joomla15')
//etc

【讨论】:

  • 啊……没错。感谢您的帮助。我愚蠢地忘记了“和”位。 +1
【解决方案2】:

由于括号错误,您的 if 逻辑有缺陷。现在,您将isset($_POST['module_gen_select_ver'] )'joomla15' 进行比较。我相信您打算将$_POST['module_gen_select_ver']'joomla15' 进行比较。

【讨论】: