2013-10-10 172 views
-6

我目前正在學習一個開始的PHP編程課程,我需要一些幫助,我正試圖解決一個任務。該任務是創建一個用戶可以輸入正整數的表單。然後,使用「for」循環顯示由「hr」標籤創建的水平線的數量[提示:<hr size=1 width=50% color='black'>]。最後,使用if語句來執行「模數」計算。當「for」循環中的計數器爲偶數時,將水平線的寬度設置爲50%;否則,將水平線的寬度設置爲100%。PHP:for循環和if語句

這裏是我想出了迄今爲止代碼:

<?php 

if ($_POST) { // if the form is filled out 
$integer = $_POST["pi"]; 

$i = $integer; 

for ($i = 1; $i <= $integer; $i++) { 
if ($i % 2) { // modulus operator 
echo "<hr size=1 width=50% color='black'>"; 
} else { 
echo "<hr size=1 width=100% color='red'>"; 
} 

} 
} 
else { // otherwise display the form 
?> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
Enter a <i>Positive Integer</i>: 
<input type="text" name="pi" size=5> 
<input type="submit" value="Check"></form></p> 
<?php 
} 
?> 

我不能張貼圖片還沒有,但樣本輸出應該是50%的黑色水平線,接着一個紅色的100%橫向規則,直到達到輸入的整數。在每個小時之間似乎有一定的間距。

+0

嘗試格式化你的代碼,可讀性更強,因此更好的質量更好。 – markus

+4

你有什麼問題? –

+0

看到我的回答,你只需要刪除'$ i = $ integer;' – Mike

回答

0

這條線:

$i = $integer; 

...是多餘的,只要你說for($i = ...,$ I將被覆蓋。在你的情況下,它應該是。先拿出這條線開始。

其次,我認爲你遇到的問題是你的線條不顯示爲黑色或紅色。原因是color字體屬性,你應該看看這篇文章,找出如何改變你的顏色: Changing the color of an hr element

我建議您在PHP中使用class='black'class='red'和你的CSS設置類了。

+1

我使用的Safari和顏色屬性工作正常。其他瀏覽器可能不會這樣。 – Mike

0

問題是您將$ i分配給變量$ integer,因此它們是相同的值。

<?php 
if ($_POST) 
{ // if the form is filled out 
    $integer = $_POST["pi"]; 
    for ($i = 1; $i <= $integer; $i++) 
    { 
     if ($i % 2 ===0) 
     { // modulus operator 
      echo "<hr size=1 width=50% color='black'>"; 
     } 
     else 
     { 
      echo "<hr size=1 width=100% color='red'>"; 
     } 
    } 
} 
else 
{ // otherwise display the form 
?> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
Enter a <i>Positive Integer</i>: 
<input type="text" name="pi" size=5> 
<input type="submit" value="Check"></form></p> 
<?php 
} 
?> 
+0

呵呵?沒有區別..他正在做'$ i = $ integer'而不是'$ integer = $ i'這將會(可能)拋出一個錯誤,因爲它是一個空值... – Colandus

+0

當然'$ i = $ integer ''是不必要的,但是刪除它不會改變任何東西,因爲'$ i'被重新分配給了(for $($ i = 1; $ i <= $ integer; $ i ++)' –

+0

見http://dev.michaelnorris.co .uk/so.php這是OP要求的,這是上面顯示的代碼。 – Mike

0

目前尚不清楚問題是什麼。如果問題在於你的HR元素之間有空格,那麼刪除默認邊距將有所幫助(至少在Firefox中,我不確定所有瀏覽器是否在HR上使用相同的渲染規則)。

<hr size="1" width=50% color='black' style="margin:0;" /> 
<hr size="1" width=100% color='red' style="margin:0;" /> 
0

使用這個CSS代碼格式化所有人力資源要素

<style type="text/css"> 
hr {margin: 0px auto 0px auto;} 
</style> 
+0

OP不詢問造型'


'標籤。 – Mike

+0

那他在問什麼?他的代碼運行得很好,並引用他的話:「在每個小時之間似乎有一定的間距」,我認爲這是他的問題? – Colandus