为什么选择'没出现?

时间:2016-05-03 20:01:02

标签: php html

有谁知道为什么选择&#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>的任何其他选项。

1 个答案:

答案 0 :(得分:1)

$ images中的密钥很可能是数字的,例如1 => 'abc'。由于$ _GET始终包含字符串值,因此===中使用的$_GET['images'] === $key比较运算符永远不会成立。如果您改为使用==,则数字值和字符串值中的数字匹配,并且将包含“已选择”。

===为真,如果两个操作数具有相同的类型和相同的值,对于==,操作数具有相同的值就足够了。