我正在尝试创建一个包含文本字段和下拉列表的表单。使用文本字段,我正在使用此代码:
<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........
据我所知,这与文本字段的设置方式完全相同,但不起作用,反正似乎是一种不好的方法。
答案 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)