空()函数,我写了这个代码:复选框选中得到即使值为空,在PHP
<?php if (!empty($isLocal)) {echo "checked";} ?>
听起来很简单?如果$ isLocal不是空的,那么检查它,否则不检查它。
然而,它不断检查它,尽管空值!这有什么问题?
我不得不在页面上重复几次isLocal,它仍然是一样的 - 它仍然是空的,但复选框被选中。是的,我查看了HTML代码,看看“checked”是否写入,而不是。它只在PHP逻辑内打印“checked”。
的HTML代码是这样的
Enable this machine:<input type="checkbox" value="1" name="isLocal"
<?php if (!empty($isLocal)) {echo "checked";} ?> />
一件事 - 我从XML文件中使用SimpleXML加载isLocal。
$configurations = simplexml_load_file('configs.xml');
foreach ($configurations->xpath("/configurations") as $t)
{
$isLocal=$t->isLocal;
}
但是,你看,问题是它可以看到它是否为空或有值。我不能使用“isset()”,因为它总是设置为空值。
由于HTML没有显示检查的属性,所以你会回显出来,这听起来像别的东西可能会切换复选框 - 该页面上是否有任何可能改变内容的JavaScript? – ernie 2013-03-22 22:02:18
没有Javascript。这就是为什么我感到困惑。如果我回显“$ isLocal”,并且在复选框之前显示空值,那么在应该取消选中时,复选框仍会被检查。复选框后,我也回复$ isLocal,它仍然是空的。 – netrox 2013-03-25 17:23:45
由于您在查看源代码时看到的呈现HTML未显示“checked”,因此其他内容正在检查该复选框。这可能是您的浏览器会话管理,JavaScript或其他。这不太可能是你的PHP的问题。 – ernie 2013-03-25 17:55:44