2017-01-01 40 views
1

我在列表中遇到一些問題。我想在下拉框中回顯一個for循環的值,但是當這樣做時,它會將所有回波都顯示在一行上,如下所示。PHP for循環顯示項目在一條線上

example of output

繼承人我的代碼看起來像

<select style="width: 183px;" name="timee" id="timee"> 
<?php 
$timee = ''; 
for ($i = 0; $i <= 24; $i++) { 
    if($i <= 0) { 
    $timee .= $i; 
    }else { 
    $timee .= str_pad($i, 2, "0", STR_PAD_LEFT); 
    } 
} 
?> 
<option value="<?php echo $timee; ?>"> 
    <?php echo $timee; ?> 
</option>         
</select> 

任何幫助將非常讚賞,因爲我有點難倒以它是什麼...像往常一樣它可能是一些簡單的地獄。

+0

你想讓每個值變成不同的選項嗎? – Barmar

+0

@Barmar正如我所說的那樣簡單......我一直在認爲這是我的循環,但它可能有助於如果我循環選項以及...感謝幫助lmao – Jordan

回答

0

您打印循環結束後,所有的輸出,而你需要做的是打印每一個值,每次循環的迭代:

<select style="width: 183px;" name="timee" id="timee"> 
<?php 
// make sure to check which values should $timee get 
for ($i = 0; $i <= 24; $i++) { 
    if ($i <= 0) { 
    $timee = $i; 
    } else { 
    $timee = str_pad($i, 2, "0", STR_PAD_LEFT); 
    } 
    ?><option value="<?php echo $timee; ?>"> 
     <?php echo $timee; ?> 
    </option><?php 
} 
?> 
</select> 
+0

他不應該連接到'$ timee'。 – Barmar

+0

@Barmar同意,添加一個評論讓OP找出它應該是什麼 –

0

如果希望每個值作爲一個滴一個單獨的選項下拉列表:

$options = ''; 
$timee = ''; 
for ($i = 0; $i <= 24; $i++) { 
    if($i <= 0) { 
     $timee = $i; 
    }else { 
     $timee = str_pad($i, 2, "0", STR_PAD_LEFT); 
    } 
    $options .= '<option value="' . $timee .'">' . $timee . '</option>';  
} 

echo '<select style="width: 183px;" name="timee" id="timee">' . $options . '</select>'; 

此方法創建列表和問題的元素中只有一個echo輸出。以這種方式進行編碼是理想的,因爲它提高了客戶端看到服務器響應所需的時間,因爲服務器處理信息的速度比製作一堆StdOut調用要快。

+0

連接到'$ timee'將使每個選項包括所有以前的。 – Barmar

+0

@Barmar opps。修改以清除每個迭代中的$ timee。謝謝 –

+0

你不需要清除它,只需正常分配它而不是追加。 – Barmar