2013-01-22 22 views
0

我有一週的天覆選框象下面這樣:

<input type="checkbox" name="day[]" id="monday" value="Monday"> 
<label for="monday">Monday</label> 
<input name="day-detail[]" type="text" /> 

<input type="checkbox" name="day[]" id="tuesday" value="Tuesday"> 
<label for="tuesday">Tuesday</label> 
<input name="day-detail[]" type="text" /> 

等。

請注意,每天都有相關的輸入文本。

我想知道是否可以打印輸入文本字段只有當複選框被選中。我需要與許多人檢查框,所以我用下面的函數tryed做幾次:

<?php 
function checkboxes($checkbox_field, $default = '') { 
    if(isset($_POST[$checkbox_field]) and !empty($_POST[$checkbox_field])) { 
     $post_field = $_POST[$checkbox_field]; 
     if (is_array($post_field)) { 
      if(!empty($_POST[$checkbox_field.'-detail'])) { 
       return join(', ', $post_field.': '.$_POST[$checkbox_field.'-detail']); 
       echo $_POST[$checkbox_field.'-detail']; 
      } 
      else { 
       return join(', ', $post_field); 
       echo $_POST[$checkbox_field.'-detail']; 
      } 
     } 
    } else { 
     return $default; 
    } 
} 

echo "The weekly sales are: ".checkboxes('day'); 
?> 

這就是我想要打印:

星期一:value from text input,週二:value from text input

將選中的複選框都印好,但文字輸入都沒有。

出了什麼問題?

在此先感謝。

回答

0

我認爲你需要的是使用一個索引的字段。假設選擇了星期二。然後$_POST["day"][1]給你TRUE(複選框)和$_POST["day-detail"][1]給你相應的文本(即1用作兩個字段的索引)。

實際上,索引實際上是for循環中的一個變量,因爲我正在想象你循環所有複選框。

+0

因此,我發佈的PHP結構即使對於字段的索引也完全不起作用?我會嘗試用'count'作爲for循環嗎?謝謝! – LuAmbros

+1

說實話,我並不理解你完全發佈的代碼......看起來你正在使它比需要的更加複雜。然而,再看一眼,你肯定做錯了(在2個地方)的一件事是,你正在做一個回報,然後是回聲......回聲永遠不會被調用。 – Gigi

相關問題