2017-02-09 279 views
0

所以我撞上了墙。我试图避免在“查看订单”页面中显示表单中的所有颜色选项。 因此,他们会在每种颜色的表格中输入所需的数量,然后提交到review.php页面。 我只是不确定是否需要PHP循环或JavaScript循环或如何完成此操作。 任何帮助真的很感激!只有当输入值大于0时才显示数值

形式

<form action="review.php" method="post" name="form1" id="form1"> 
<p>12x12<br> 
c000x12 <input type="text" name="c000x12"><br> 
c010x12 <input type="text" name="c010x12"><br> 
c020x12 <input type="text" name="c020x12"><br> 
c019x12 <input type="text" name="c019x12"><br> 
c021x12 <input type="text" name="c021x12"><br> 
</p> 
<p>12x24<br> 
c000x24 <input type="text" name="c000x24"><br> 
c010x24 <input type="text" name="c010x24"><br> 
c020x24 <input type="text" name="c020x24"><br> 
c019x24 <input type="text" name="c019x24"><br> 
c021x24 <input type="text" name="c021x24"> 
</p> 
<p><input type="submit" name="submit" id="submit" value="Submit"></p> 

</form> 

然后,我有以下的查看页面上... 我想只显示在该值大于0

PHP

<?PHP 

// x12 
$c000x12= $_POST["c000x12"]; 
$c010x12= $_POST["c010x12"]; 
$c020x12= $_POST["c020x12"]; 
$c019x12= $_POST["c019x12"]; 
$c021x12= $_POST["c021x12"]; 

// x24 
$c000x24= $_POST["c000x24"]; 
$c010x24= $_POST["c010x24"]; 
$c020x24= $_POST["c020x24"]; 
$c019x24= $_POST["c019x24"]; 
$c021x24= $_POST["c021x24"]; 

?> 

HTML

<p>12x12<br> 
<? echo "000 Transparent=".$c000x12 ."<br/>". 
"010 White=".$c010x12 ."<br/>". 
"020 Golden yellow=".$c020x12 ."<br/>". 
"019 Signal yellow=".$c019x12 ."<br/>". 
"021 Yellow=".$c021x12 ."<br/>" ; ?> 
</p> 
<p>12x24<br> 
<? echo "000 Transparent=".$c000x24 ."<br/>". 
"010 White=".$c010x24 ."<br/>". 
"020 Golden yellow=".$c020x24 ."<br/>". 
"019 Signal yellow=".$c019x24 ."<br/>". 
"021 Yellow=".$c021x24 ."<br/>" ; ?> 
</p> 
+0

莫非你请解释更简单的方式,以便我可以帮忙? –

+0

我真的不知道你想解决什么问题,请编辑你的问题,让你的问题更清晰 – RiggsFolly

+0

@RiggsFolly就像现在一样,如果客户只需要10个单一的颜色和尺寸,评论页面仍然会显示所有结果包括零值或空白值。 我想省略那些。 –

回答

0

我想只显示值大于0.

使用的解决方案个implode功能:

PHP:

$c12x12 = array_filter([$c000x12, $c010x12, $c019x12, $c020x12, $c021x12], function ($v) { 
    return (int) $v > 0; 
}); 

$c12x24 = array_filter([$c000x24, $c010x24, $c020x24, $c019x24, $c021x24], function ($v) { 
    return (int) $v > 0; 
}); 

HTML:

<p>12x12<br> 
<?php echo implode('<br>', $c12x12); ?> 
</p> 
<p>12x24<br> 
<?php echo implode('<br>', $c12x24); ?> 
</p> 
+0

好吧,所以它把它放到一个数组中,这样我就可以检查它。我要去试试这个。 我编辑了代码来显示“color =#” 这还有可能吗? –

0

我想我可能会保留使用循环的情况下,其中的值被推到一个数组。

这就是说,与此设置中工作,我可能会建议像这样的显示:

<p>12x12<br> 
<?php if($c000x12 > 0){ echo $c000x12 ."<br>" }; ?> 
<?php if($c010x12 > 0){ echo $c010x12 ."<br>" }; ?> 
<?php if($c020x12 > 0){ echo $c020x12 ."<br>" }; ?> 
<?php if($c019x12 > 0){ echo $c019x12 ."<br>" }; ?> 
<?php if($c021x12 > 0){ echo $c021x12 ."<br>" }; ?> 
</p> 

<p>12x24<br> 
<?php if($c000x24 > 0){ echo $c000x24 ."<br>" }; ?> 
<?php if($c010x24 > 0){ echo $c010x24 ."<br>" }; ?> 
<?php if($c020x24 > 0){ echo $c020x24 ."<br>" }; ?> 
<?php if($c019x24 > 0){ echo $c019x24 ."<br>" }; ?> 
<?php if($c021x24 > 0){ echo $c021x24 ."<br>" }; ?> 
</p> 

阵列的方法例如:

<?php 

foreach ($_POST as $key => $value){ 
if($value > 0){ 
    echo $value . "</br>"; 
} 
}; 

?> 
+0

我看到这可能会如何工作,但有些产品具有50多种颜色和2种尺寸,因此这将是100行代码。 我的意思是如果我必须可以,但我认为某种循环可能会更好。 –

+0

嗯,我只是想模仿你的例子中的HTML/PHP结构。一秒钟,我会循环一次。 – Stu

+0

新增示例,可能需要针对您的视觉需求进行一些调整@JamesCrellin – Stu

0

我真的要感谢你们的帮助。我修复了一些问题。我从两个答案中使用了array_filter和foreach循环。 我忘了在OP中提到我需要显示的名字。然而,在这里提示和更多的研究后,这里是我的修复。

**请注意..QTY部分中的所有变量将为表单中的$ _POST。

FORM保持不变...

回顾

<?php 
// COLORS 
$n000= "Transparent"; 
$n010= "White"; 
$n020= "Black"; 
$n019= "Red"; 
$n021= "Blue"; 
//x12 QTY 
$c000x12= "8"; 
$c010x12= "2"; 
$c020x12= ""; 
$c019x12= "1"; 
$c021x12= "3"; 
//x24 QTY 
$c000x24= "0"; 
$c010x24= "1"; 
$c020x24= "3"; 
$c019x24= "0"; 
$c021x24= "9"; 



$x12=array($n000=>$c000x12,$n010=>$c010x12,$n020=>$c020x12,$n019=>$c019x12,$n021=>$c021x12); 

echo "<b>12 x 12</b> <br>"; 

foreach($x12 as $clr=>$qty) { 
if($qty > 0){ 
    echo $clr . " = " . $qty; 
    echo "<br>"; 
} 
}; 

    echo "<br>"; 

$x24=array($n000=>$c000x24,$n010=>$c010x24,$n020=>$c020x24,$n019=>$c019x24,$n021=>$c021x24); 

echo "<b>12 x 24</b> <br>"; 

foreach($x24 as $clr=>$qty) { 
if($qty > 0){ 
    echo $clr . " = " . $qty; 
    echo "<br>"; 
} 
}; 
?> 

,这将输出...

12×12
透明= 8
白色= 2
红色= 1
蓝色= 3

12×24
白色= 1
黑色= 3
蓝色= 9

+0

出色的工作! – Stu

相关问题