复选框未返回选中状态

I have the following code:

<div><input type="checkbox" name="fhaac_publicly_queryable" value="<?php
    if (isset( $_POST ['fhaac_publicly_queryable'])) {
        echo  "checked";
    } elseif ($fhaac_publicly_queryable == "on") {
    echo "checked";
    }
?>" name="fhaac_publicly_queryable" /> Publicly Queryable on a search</div>

I have the content saving to the database, but on save, the checked check box disappears and I can't figure out how to query so it returns. Any ideas?

Thanks in advance

You're writing the checked attribute as the value of the value attribute. Plus, the name attribute is written twice. Do this instead:

<div>
    <input type="checkbox" name="fhaac_publicly_queryable" <?php
if (isset($_POST['fhaac_publicly_queryable'])){
    echo 'checked';
} else if($fhaac_publicly_queryable == "on"){
    echo "checked";
}?>>
    Publicly Queryable on a search
</div>

I still encourage you to please do the PHP logic somewhere else, because this just looks awful. It really does. And to edit your if/else, it could be improved with or (||).