首页 > 解决方案 > 提交后禁用选项

问题描述

我有 2 种颜色可供选择。

<select name="hoogte">
<? foreach ($hoogte_array as $hoogtekey => $valuehoogte) { ?>
    <option value="<?echo $hoogtekey;?>" <? if ($hoogtekey == $_SESSION['laatstehoogte']){echo "selected";}?>><?echo $valuehoogte;?></option>
<?}

该值保持完美选择,没有任何问题。

提交后如何禁用其他选项?

有2种颜色。我选择一个,提交表格。值保持选中状态,其他选项被禁用。

谢谢。

标签: phphtml

解决方案


首先

你的代码格式真的很糟糕。
而不是<?echo你可以使用<?=. 也不建议使用短标签(<?而不是<?php),您不应使用它们。

第二

而不是if else您可以使用在像您这样的情况下非常有用的简短版本。
所以而不是

if ($hoogtekey == $_SESSION['laatstehoogte']){echo "selected";}

你可以写

echo $hoogtekey == $_SESSION['laatstehoogte'] ? "selected" : "";

第三

如果您使用超全局变量,检查它是否存在总是一件好事null。有一个函数叫做empty(). 我建议使用它。它检查变量是否不存在或等于nullfalse等等。

最后

如果您想在选择后禁用其他选项,而不仅仅是disabled向它们添加属性。

这是一个例子

<select name="hoogte">
<?php foreach ($hoogte_array as $hoogtekey => $valuehoogte) { ?>
    <option value="<?= $hoogtekey; ?>" <?= !empty($_SESSION['laatstehoogte']) && $hoogtekey == $_SESSION['laatstehoogte'] ? "selected" : "disabled"; ?>><?= $valuehoogte;?></option>
<?php }
</select>

推荐阅读