1

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

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>';
}

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

谁能告诉我我哪里出错了?

4

2 回答 2

4

你的 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
于 2012-10-02T22:13:12.220 回答
3

由于括号错误,您的 if 逻辑有缺陷。现在,您正在isset($_POST['module_gen_select_ver'] )比较'joomla15'. 相信你打算比较$_POST['module_gen_select_ver']一下'joomla15'

于 2012-10-02T22:14:09.093 回答