0

我在这里的 php/html 代码中遇到了问题,我似乎无法找到该错误。该表单似乎发布了除此字段之外的所有内容,该字段似乎每次都返回“空”。(尝试从表单中的“select”选项设置变量“active”,默认为数据库值。问题是,它总是返回到默认的 [database] 值,无论下面的“select”选项如何......即使在发布表格之后。) *请注意,“活动”的数据库值是 0/1 位值。这会影响结果吗?

php:
$active = (!empty($_REQUEST["active"]))?$_REQUEST["active"]:$row["active"];

html: 
<select class="sel" name="active" id="active">
    <option value="0" <?php echo ($active=="0"?"selected":"");?>>Not Active</option>
    <option value="1" <?php echo ($active=="1"?"selected":"");?>>Active</option>
</select>
4

1 回答 1

0

在您的 PHP 代码中,empty将为字符串“0”返回 true,因此$active在这种情况下设置为预先存在的值。您可能想要的是:

$active = (array_key_exists('active', $_REQUEST) ? (!empty($_REQUEST['active']) ? true : false) : $row['active']);

如果提供的字符串不被认为是空的(即除 0 或空字符串之外的任何字符串),如果它存在但为空,这将设置$active变量,如果数据中不存在数组键,则保留现有值。truefalse

于 2020-01-02T23:02:34.447 回答