首页 > 解决方案 > 如果变量为空,让我的 div 消失?

问题描述

我使用 PHP/HTML 制作表单。

我已将所有字段划分为 div,并从 SQL Server 的表中获取所有值。如果我从表中获得的值是空的,我想让一些 div 消失。我知道该怎么做,但是如果变量为空,它就不起作用。例如;

<div <?php if (empty($trabalhoSemCarteira)){?>style="display:none"<?php }?>>
<h2>Trabalho sem registro em carteira:</h2>
<div>
    <label><?php echo $trabalhoSemCarteira;?></label>
</div>
</div>

这不起作用,我不知道为什么。另一方面;

<div <?php if ($numeroFilhos<3){?>style="display:none"<?php }?>>
    <label>Nome do Filho: <?php echo $nomeFilho3;?></label>&nbsp;&nbsp;
    <label>Idade: <?php echo $idadeFilho3;?></label><br>
</div>

这个工作就像一个魅力。我在他们两个都做同样的事情。我认为问题出在“”功能上,我不知道,但这实际上是唯一的区别。

编辑:我尝试使用==null,is_null()而不是,empty但没有任何效果。

标签: phphtml

解决方案


我对您的数据库收集代码不是非常精通,所以我不能绝对确定问题是什么。首先,正如 CBroe 所提到的,var_dump($trabalhoSemCarteira)当您一无所获时,使用它来查找您的变量实际上是什么。然后只需将其键入 if 语句。例子:

<?php if($trabalhoSemCarteira === $a){?>style="display:none;"<?php }?>

当然,$a意味着是任何var_dump($trabalhoSemCarteira)输出。注意:请让你的代码更干净。实际上,起初我真的无法判断这种格式是否有效。除非您将空块用于其他用途(例如稍后使用 JS 显示块,在这种情况下您的方法绝对有意义),为防止您渲染不必要的无用代码块,仅在变量确实存在时才渲染块. 例子:

<?php if($trabalhoSemCarteira !== $a): ?>
<div>
<h2>Trabalho sem registro em carteira:</h2>
<div>
    <label><?php echo $trabalhoSemCarteira;?></label>
</div>
</div>
<?php endif; ?>

显然,$a无论您的var_dump($trabalhoSemCarteira)输出如何。

编辑:我刚读了笔记,你说它给了你一个空白空间。将$a示例中的替换为


推荐阅读