-1

我写了这段代码:

 <?php if (!empty($isLocal)) {echo "checked";} ?>

听起来很简单?如果 $isLocal 不为空,则检查它,否则不检查它。

然而,尽管值为空,它仍会继续检查它!这有什么问题?!

我不得不在页面上多次回显 isLocal 并且它保持不变 - 它仍然是空的,但复选框已选中。是的,我查看了 HTML 代码以查看是否没有写入“checked”,但实际上没有。它只在 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()”,因为它总是设置为空值。

4

2 回答 2

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";}
?>  
于 2013-03-22T22:51:55.687 回答
0

刚刚了解到,输入“var_dump($isLocal)”表明它是一个对象,而不是简单的数据类型!

在加载 XML 对象后执行此操作:

$isLocal=(string)$t->isLocal;

解决了这个问题。

于 2013-03-25T18:21:57.730 回答