我正在将表单中的数据收集到会话中,在另一种表单上,我使用一些变量来提供SELECT选项,这可以按我的意愿运行。如图所示
<select class="select2_category form-control" data-placeholder="Choose a Category" tabindex="1" id="householder" name="householder">
<option value=""></option>
<option value="A"><?php echo $_SESSION["name1"];?></option>
<option value="B"><?php echo $_SESSION["name2"];?></option>
<option value="C"><?php echo $_SESSION["name3"];?></option>
<option value="D"><?php echo $_SESSION["name4"];?></option> </select>
我的问题是如何改变这一点,目前如果在表单中,任何名称都留空,那么当涉及到SELECT时,每个选项空白都有一个空行,是否有办法改变这一点,如果变量是空白然后忽略并使用下一个变量,这将使我的SELECT看起来整洁
答案 0 :(得分:3)
首先,您应该考虑使用数组而不是一系列唯一命名的会话变量名,例如:
$_SESSION['names'] = array('A' => 'First', 'B' => 'Second');
然后你可以用foreach
代替它们。此外,您可以使用array_filter
函数(documentation)在循环遍历名称数组之前过滤掉空值:
<select class="select2_category form-control" data-placeholder="Choose a Category" tabindex="1" id="householder" name="householder">
<option value=""></option>
<?php
$options = array_filter($_SESSION['names']);
foreach ($options as $option_value => $option_name): ?>
<option value="<?php echo $option_value; ?>"><?php echo $option_name;?></option>
<?php endforeach; ?>
</select>
答案 1 :(得分:1)
<?php if (isset($_SESSION["name1"]) && $_SESSION["name1"]!='') {?><option value="A"><?php echo $_SESSION["name1"];?></option><?php } ?>
这适用于您选择
的每一行/选项答案 2 :(得分:1)
使用if语句检查您的变量是否存在。
<?php if (isset($_SESSION["name1"])) : ?>
<option value="C"><?php echo $_SESSION["name1"];?></option>
<?php endif; ?>