我有以下试图结合在一起的PHP函数,我想根据是否为变量分配值来显示或隐藏行。
<?php ( (!empty($_POST['matterNumber']) && !empty($_POST['precedentName']) && !empty($_POST['documentName']) && !empty($_POST['reportName']) && !empty($_POST['stepsforIssue'])) )
{
echo 'Replicating the Issue' . '
';
if(isset($_POST['matterNumber']) && !empty($_POST['matterNumber'])){
echo 'Matter Number - ' . ($_POST['matterNumber']) . '
';
}
if(isset($_POST['precedentName']) && !empty($_POST['precedentName'])){
echo 'Precedent Name - ' . ($_POST['precedentName']) . '
';
}
if(isset($_POST['documentName']) && !empty($_POST['documentName'])){
echo 'Document Name - ' . ($_POST['documentName']) . '
';
}
if(isset($_POST['reportName']) && !empty($_POST['reportName'])){
echo 'Report Name - ' . ($_POST['reportName']) . '
';
}
if(isset($_POST['stepsforIssue']) && !empty($_POST['stepsforIssue'])){
echo 'Steps to replicate/reproduce the issue:' . ($_POST['stepsforIssue']) . '
';
}
echo'------------------------------------------------------------------
';
} ?>
因此,例如,如果所有变量都是空的,我什么都不希望显示,尽管如果一个或多个变量不为空,我需要在标题和连字符之间显示该值。
复制问题
物料编号-“此处的值”
报告名称-“此处的值”
--------------------------------- =
此刻,我发现即使变量之一存在值,行也保持隐藏。
答案 0 :(得分:0)
只需尝试
遍历$_POST
数组并回显已设置的值。
希望这可以解决您的问题。
foreach ($_POST as $key => $value) {
if(!empty($value))
echo $key ."=".$value."</br>";
}
答案 1 :(得分:0)
有关预期结果,请参考以下代码。
if(!empty($_POST['matterNumber']) || !empty($_POST['precedentName']) || !empty($_POST['documentName']) || !empty($_POST['reportName']) || !empty($_POST['stepsforIssue']))
{
echo 'Replicating the Issue' . '';
if(isset($_POST['matterNumber']) && !empty($_POST['matterNumber'])){
echo 'Matter Number-'.($_POST['matterNumber']);
}
if(isset($_POST['precedentName']) && !empty($_POST['precedentName'])){
echo 'Precedent Name -'.($_POST['precedentName']);
}
if(isset($_POST['documentName']) && !empty($_POST['documentName'])){
echo 'Document Name - '.($_POST['documentName']);
}
if(isset($_POST['reportName']) && !empty($_POST['reportName'])){
echo 'Report Name - '.($_POST['reportName']);
}
if(isset($_POST['stepsforIssue']) && !empty($_POST['stepsforIssue'])){
echo 'Steps to replicate/reproduce the issue:'.$_POST['stepsforIssue'];
}
echo'--------------------------------------------------------------';
}
答案 2 :(得分:0)
我相信您要查找的是代码的简写形式?为了解决当前的显示问题,请像这样更改第一行
<?php
if( isset($_POST['matterNumber']) || isset($_POST['precedentName']) || isset($_POST['documentName']) || isset ($_POST['reportName']) || isset($_POST['stepsforIssue']))
{
if( !empty($_POST['matterNumber']) || !empty($_POST['precedentName']) || !empty($_POST['documentName']) || !empty ($_POST['reportName']) || !empty($_POST['stepsforIssue']))
{
echo 'Replicating the Issue <br>';
if(isset($_POST['matterNumber']) && !empty($_POST['matterNumber']))
{
echo " Matter Number: ".$_POST['matterNumber']."<br> ";
}
if(isset($_POST['precedentName']) && !empty($_POST['precedentName']))
{
echo " Precedent Name: ".$_POST['precedentName']."<br> ";
}
if(isset($_POST['documentName']) && !empty($_POST['documentName']))
{
echo " Document Name: ".$_POST['documentName']."<br> ";
}
if(isset($_POST['reportName']) && !empty($_POST['reportName']))
{
echo " Report Name: ".$_POST['reportName']."<br> ";
}
if(isset($_POST['stepsforIssue']) && !empty($_POST['stepsforIssue']))
{
echo " Steps to replicate/reproduce the issue: ".$_POST['stepsforIssue']."<br> ";
}
}
}
?>
您还可以使用三元运算符来进一步缩短代码。 ||
符号代表OR
。
答案 3 :(得分:0)
我有一个解决方案来显示/隐藏基于另一个变量的区域,如下所示,尽管它与原始帖子并不相同,但它提供了相同的解决方案,并且可以满足我的需求。
<?php if($_POST['closedEscalated'] == 'Escalated'){
echo 'Replicating the Issue' . '
';
if(isset($_POST['matterNumber']) && !empty($_POST['matterNumber'])){
echo 'Matter Number - ' . ($_POST['matterNumber']) . '
';
}
if(isset($_POST['precedentName']) && !empty($_POST['precedentName'])){
echo 'Precedent Name - ' . ($_POST['precedentName']) . '
';
}
if(isset($_POST['documentName']) && !empty($_POST['documentName'])){
echo 'Document Name - ' . ($_POST['documentName']) . '
';
}
if(isset($_POST['reportName']) && !empty($_POST['reportName'])){
echo 'Report Name - ' . ($_POST['reportName']) . '
';
}
if(isset($_POST['stepsforIssue']) && !empty($_POST['stepsforIssue'])){
echo 'Steps to replicate/reproduce the issue:' . ($_POST['stepsforIssue']) . '
';
}
echo'------------------------------------------------------------------
';
}