2017-02-09 278 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

相關問題