将PHP变量设置为用户选择的下拉列表

时间:2016-05-10 20:20:00

标签: php joomla

我正在尝试创建一个包含文本字段和下拉列表的表单。使用文本字段,我正在使用此代码:

<label for="name">Name</label>
<input type="text" id="name" name="name" value="<?php echo $user->name;?>" style="width:95%;"/>

然后表单检查用户是否填写了“name”字段:

$name = $input->get('name', null);
if($name == null)
    return false;

这适用于表单使用的多个文本字段,但我不知道如何检查下拉列表中的用户输入。如何发送用户选择的选项,类似于我使用文本字段的方式,以便我可以检查以确保用户选择了什么?示例:

<label for="department">Department</label>
<select name="department" form="quickcontact_frm">
    <option value="default">Select </option>
    <option value="1"><?php echo $params->get('department1');?></option>
    <option value="2"><?php echo $params->get('department2');?></option>
    <option value="3"><?php echo $params->get('department3');?></option>
    <option value="4"><?php echo $params->get('department4');?></option>
    <option value="5"><?php echo $params->get('department5');?></option>
    <option value="6"><?php echo $params->get('department6');?></option>
    <option value="7"><?php echo $params->get('department7');?></option>
    <option value="8"><?php echo $params->get('department8');?></option>
</select>

$department1 = $input->get('department1', null);
$department2 = $input->get('department2', null);
Etc........

据我所知,这与文本字段的设置方式完全相同,但不起作用,反正似乎是一种不好的方法。

3 个答案:

答案 0 :(得分:2)

如果您想验证并预先选择一个选项,您应该执行以下操作:

<option value="6" <?php if($params->get('department6')==true){ echo 'selected'; } ?>><?php echo $params->get('department6');?></option>

答案 1 :(得分:2)

首先,您可以使用for循环来代替为您的部门设置8行。

<select name="department" form="quickcontact_frm">
    <option value="default">Select </option>
    <?php for($i=1; $i<=8; $i++): ?>
        <option value="<?php echo $i; ?>"><?php echo $params->get('department' . $i);?></option>
    <?php endfor; ?>
</select>

现在,在for循环中,您可以添加一个检查$input->get是否为真。

<?php if($input->get('department' . $i, null)) echo 'selected'; ?>

因此,如果将两者混合在一起,结果将是

<select name="department" form="quickcontact_frm">
    <option value="default">Select </option>
    <?php for($i=1; $i<=8; $i++): ?>
        <option value="<?php echo $i; ?>" <?php if($input->get('department' . $i, null)) echo 'selected'; ?>><?php echo $params->get('department' . $i);?></option>
    <?php endfor; ?>
</select>

答案 2 :(得分:0)

如果你想要预先选择&#34;选项使用&#34;选择&#34;在您想要的选项中:

document

正如W3CSchools所述。