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


Set a PHP variable as the value of user selected dropdown form

我正在尝试创建一个带有文本字段和下拉列表的表单。对于文本字段,我使用以下代码:

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

然后,表单检查用户是否填写了"名称"字段:

$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........

据我所知,这是以与文本字段完全相同的方式设置的,但不起作用,而且似乎是一种糟糕的方式。

如果你想验证并预选一个选项,你应该这样做:

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

首先,您可以使用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是否为true。

<?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>

如果您想要一个"预先选择的"选项,请在您想要的选项中使用"已选择的":

<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" selected><?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>

正如W3C学校所解释的。