提交后禁用选项

时间:2018-11-28 09:23:40

标签: php html

我有2种颜色可供选择。

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

选择的值保持完美,这没什么问题。

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

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

谢谢。

2 个答案:

答案 0 :(得分:2)

如果未选中,则将其置于“已选中”,然后禁用。另外,您必须先检查是否设置了会话。

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

答案 1 :(得分:2)

首先

您的代码格式错误。
可以使用<?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>