在php表单中选择多个选项

时间:2017-12-12 19:38:27

标签: php opencart2.x

我在opencart 2.3的product_form.tpl php文件中有这个简单的代码:

<select name="type" id="type" class="form-control">
<?php if ($type) { ?>
<option value="1" selected="selected">Flower</option>
<option value="0">Plant</option>
<?php } else { ?>
<option value="1">Flower</option>
<option value="0" selected="selected">Plant</option>
<?php } ?>
</select>

一切都很简单,但我需要至少另外一个选项来添加:

<option value="2">Bouquet</option>

如果有3个选项,请告诉我这应该是什么样子......提前致谢!

4 个答案:

答案 0 :(得分:2)

正如我在评论中所写的那样,你选择了一种糟糕的方法。

<select name="type" id="type" class="form-control">
    <option value="1" <?php echo isset($type) && $type == 1 ? 'selected' : '' ?>>Flower</option>
    <option value="0" <?php echo isset($type) && $type == 0 ? 'selected' : '' ?>>Plant</option>
    <option value="2" <?php echo isset($type) && $type == 2 ? 'selected' : '' ?>>Bouquet</option>
</select>

另一种方法是使用数组并使用foreach循环写下拉列表。

isset($type)可以在代码之上,你需要检查变量是否存在以防止注意未定义的变量。

可能有像

这样的东西
$type = isset($type) ? $type : NULL; // or any default value like 0

options中,只有<?php echo $type == 1 ? 'selected' : ''; ?>

答案 1 :(得分:1)

有时候编写一些结构化代码会更容易..

<?php
 $options = array(
        "1" => "flower",
        "0" => "Plant",
        "2" => "Bouquet",
        "3" => "Rock"
 );
 $currentval = 2;
?>

<select name="type" id="type" class="form-control">
   <?php
   foreach($options as $val => $label):
    ?>
      <option value="<?=$val;?>" <?=$currentval == $val ? 'selected' : ''?>><?=$label;?></option>
   <?php
    endforeach;
   ?>

答案 2 :(得分:-1)

你可以使用siwtch case块而不是束如果你可以查看这里的文档https://www.w3schools.com/PhP/php_switch.asp,你可以比较更有条理的$ type的值!祝你好运!

答案 3 :(得分:-1)

如果你真的想这样,那么:

<select name="type" id="type" class="form-control">
<?php if ((int)$type === 0) { ?>
<option value="2">Bouquet</option>
<option value="1">Flower</option>
<option value="0" selected="selected">Plant</option>
<?php } elseif ((int)$type === 1) { ?>
<option value="2">Bouquet</option>
<option value="1" selected="selected">Flower</option>
<option value="0">Plant</option>
<?php } elseif ((int)$type === 2) { ?>
<option value="2" selected="selected">Bouquet</option>
<option value="1">Flower</option>
<option value="0">Plant</option>
<?php } ?>
</select>

但我建议使用Jelmer Jellema建议的方式。