在SELECT选项php中使用变量

时间:2014-02-24 09:40:40

标签: php

我正在将表单中的数据收集到会话中,在另一种表单上,我使用一些变量来提供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看起来整洁

3 个答案:

答案 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; ?>