如果多行为空

时间:2018-09-20 04:48:47

标签: php html

我有以下试图结合在一起的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'------------------------------------------------------------------
';
} ?>

因此,例如,如果所有变量都是空的,我什么都不希望显示,尽管如果一个或多个变量不为空,我需要在标题和连字符之间显示该值。

示例

复制问题

物料编号-“此处的值”

报告名称-“此处的值”

--------------------------------- =

此刻,我发现即使变量之一存在值,行也保持隐藏。

4 个答案:

答案 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'------------------------------------------------------------------
';
}