显示除空或零之外的值

时间:2016-11-26 05:21:15

标签: php

所以我有一个表格,有大约60种颜色选择,顾客输入所需颜色的颜色。 以下页面是订单的“审核”。所以我已经定义了所有变量,以便我可以显示数量。我想要做的是不显示值为“”或“0”的颜色。 这是可以做到的吗?

这是头部代码......

<?PHP
$packSize = $_POST["packSize"];
$cost = $_POST[""];
//COLORS
$c000 = $_POST["c000"];
$c010 = $_POST["c010"];
$c020 = $_POST["c020"];
$c019 = $_POST["c019"];
$c021 = $_POST["c021"];
$c022 = $_POST["c022"];
$c025 = $_POST["c025"];
$c026 = $_POST["c026"];
// ect...
?>

身体......

  <p>Color choices:<br>
<?php
echo "000 = ".$c000."<br/>".
"010 = ".$c010 ."<br/>".
"020 = ".$c020 ."<br/>".
"019 = ".$c019 ."<br/>".
"021 = ".$c021 ."<br/>".
"022 = ".$c022 ."<br/>".
"025 = ".$c025 ."<br/>".
"026 = ".$c026 ."<br/>".
// etc...
?>

3 个答案:

答案 0 :(得分:2)

声明一个数组,而不是声明60变量。假设您的颜色范围从c0c100,然后声明一个数组color = array();。还可以使用empty($var)函数来检查空值。

您的代码的简短形式:

<?PHP
$packSize = $_POST["packSize"];
$cost = $_POST[""];
//COLORS 
$color = array();
for($i=0; $i<100; $i++){
   if($i<10 && !empty($_POST["c00".$i]))
          $color['c00'.$i] = $_POST["c00".$i];
   else if($i<100 && !empty($_POST["c0".$i]))
          $color['c0'.$i] = $_POST["c0".$i];
}

?>

// print

<p>Color choices:<br>
<?php
for($i=0; $i<100; $i++){
   if($i <10 && !empty($color['c00'.$i]){
       echo 'c00'.$i.'='$color['c00'.$i]."<br>";
   }
   else if($i <100 && !empty($color['c0'.$i]){
       echo 'c0'.$i.'='$color['c0'.$i]."<br>";
   }
}

// etc...
?>

答案 1 :(得分:1)

如果变量有限,则可以定义数组。 为此,您可以在打印值之前检查发布值,如非空白,如下所示:

 <?php
$packSize = $_POST["packSize"];
$cost = $_POST[""];
//COLORS
if(!empty($_POST['c000']) && $_POST["c000"]!=0)
  $c000 = $_POST["c000"];
if(!empty($_POST['c010']) && $_POST["c010"]!=0)
  $c010 = $_POST["c010"];
if(!empty($_POST['c020']) && $_POST["c020"]!=0)
  $c020 = $_POST["c020"];
if(!empty($_POST['c019']) && $_POST["c019"]!=0)
  $c019 = $_POST["c019"];
if(!empty($_POST['c021']) && $_POST["c021"]!=0)
  $c021 = $_POST["c021"];
if(!empty($_POST['c022']) && $_POST["c022"]!=0)
  $c022 = $_POST["c022"];
if(!empty($_POST['c025']) && $_POST["c025"]!=0)
  $c025 = $_POST["c025"];
if(!empty($_POST['c026']) && $_POST["c026"]!=0)
  $c026 = $_POST["c026"];

?>

答案 2 :(得分:0)

我认为这可以更好的方式在前端添加数组,如

<input type="text" name="color['c000']" value="green">
<input type="text" name="color['c001']" value="blue">

从后端轻松获取所有颜色

$color = $_POST['color']; // will give all the values

编辑:这里 $ _ POST ['color'] 会有一个数组,其中包含我们在输入中提供的相应键,例如['c000' => 'green', 'c001' => blue]

身体

<p>Color choices:<br>    
    foreach($color as $key => $value ) {
        if (!empty($value)) {//it will check the '' and 0 values
            echo ltrim($key, 'c') " = ".$value."<br/>".
        }
    }