我写了这段代码:
<?php if (!empty($isLocal)) {echo "checked";} ?>
听起来很简单?如果$ isLocal不为空,则检查它,否则不检查它。
然而,尽管价值空洞,它还是继续检查它!这有什么问题?!
我不得不在整个页面上回显isLocal几次并且它保持不变 - 它仍然是空的但复选框已被选中。是的,我查看了HTML代码以查看是否未写入“已检查”。它只在PHP逻辑中打印“已检查”。
HTML代码就是这个
Enable this machine:<input type="checkbox" value="1" name="isLocal"
<?php if (!empty($isLocal)) {echo "checked";} ?> />
还有一件事 - 我使用simplexml从XML文件加载isLocal。
$configurations = simplexml_load_file('configs.xml');
foreach ($configurations->xpath("/configurations") as $t)
{
$isLocal=$t->isLocal;
}
但是你看,问题在于它可以看出它是空的还是有价值的。我不能使用“isset()”因为它总是设置为空值。
答案 0 :(得分:0)
这样做:
<form action="checked.php" method="post">
<input type="checkbox" value="1" name="isLocal"/> Enable this machine
<input type="submit" name="formSubmit" value="Submit" />
</form>
<?php
if (!empty($_POST['isLocal']))
{echo "checked";}
?>
答案 1 :(得分:0)
刚刚了解到输入“var_dump($ isLocal)”它表明它是一个对象,而不是一个简单的数据类型!
加载XML对象后执行此操作:
$isLocal=(string)$t->isLocal;
解决了这个问题。