有谁知道为什么选择&#39;没有显示在我的<option value="">
?
<p>
<select name="images" class="dropdown">
<option value="empty"
<?php if(isset($_GET['images']) && $_GET['images'] === "empty") {
echo 'selected';
} ?>>select an image</option>
<?php foreach ($images as $key => $image) { ?>
<option value="<?= $key; ?>"
<?php
if (isset($_GET['images']) && $_GET['images'] === $key) { // and true is equal to 1, but not identical
echo 'selected';
} ?>><?= $image; ?></option>
<?php } ?>
</select>
<?php
if (isset($_GET['images']) && $_GET['images'] == 'empty') { ?>
<span class="warning">Please select an image</span>
<?php } ?>
</p>
<p>
<input type="submit" name="submit" value="SUBMIT">
</p>
$ images是具有适当扩展名的图像文件名列表。
我意识到selected
被附加到第一个选项empty
,但不会附加到<option>
的任何其他选项。
答案 0 :(得分:1)
$ images中的密钥很可能是数字的,例如1 => 'abc'
。由于$ _GET始终包含字符串值,因此===
中使用的$_GET['images'] === $key
比较运算符永远不会成立。如果您改为使用==
,则数字值和字符串值中的数字匹配,并且将包含“已选择”。
===
为真,如果两个操作数具有相同的类型和相同的值,对于==
,操作数具有相同的值就足够了。