2014-11-23 35 views
0

嗨,我有這個選擇複選框,這是週一至週五的複選框是sunday monday tuesday wednesday thursday friday saturday。用戶可以根據自己的需要進行選擇。我將數據保存到我的數據庫,例如用戶選擇星期日星期一星期二,我將它作爲1-2-3保存到我的字段中,只有一個字段名稱available_days_per_week。現在我的問題是,當我查詢數據並顯示到我的編輯頁面時,我只希望只檢查1-2-3。數據增加了兩倍。我的代碼工作,但顯示爲雙。我的繼承人下面在codeigniter中選擇的複選框

<tr> 
          <th>Available days per week</th> 
          <td> 
          <?php $daysPerWeeks = $query->available_days_per_week; ?> 
          <?php $daysPerWeeks1 = explode("-", $daysPerWeeks); ?> 
          <?php foreach($daysPerWeeks1 as $value): ?> 
           <?php foreach($daysPerWeekCheckboxes as $key=>$week): ?> 
            <input type="checkbox" name="available_days_week" value="<?php echo $key ?>" <?php echo($value == $key) ? 'checked="checked"' : ''?> ><?php echo $week; ?><br> 
           <?php endforeach; ?> 
          <?php endforeach; ?>  
          </td> 
         </tr> 

代碼會顯示在我的網頁這樣

<tr> 
          <th>Available days per week</th> 
          <td> 
                                        <input type="checkbox" name="available_days_week" value="1" checked="checked" >Sunday<br> 
                    <input type="checkbox" name="available_days_week" value="2" >Monday<br> 
                    <input type="checkbox" name="available_days_week" value="3" >Tuesday<br> 
                    <input type="checkbox" name="available_days_week" value="4" >Wendesday<br> 
                    <input type="checkbox" name="available_days_week" value="5" >Thursday<br> 
                    <input type="checkbox" name="available_days_week" value="6" >Friday<br> 
                    <input type="checkbox" name="available_days_week" value="7" >Saturday<br> 
                                  <input type="checkbox" name="available_days_week" value="1" >Sunday<br> 
                    <input type="checkbox" name="available_days_week" value="2" checked="checked" >Monday<br> 
                    <input type="checkbox" name="available_days_week" value="3" >Tuesday<br> 
                    <input type="checkbox" name="available_days_week" value="4" >Wendesday<br> 
                    <input type="checkbox" name="available_days_week" value="5" >Thursday<br> 
                    <input type="checkbox" name="available_days_week" value="6" >Friday<br> 
                    <input type="checkbox" name="available_days_week" value="7" >Saturday<br> 
                                  <input type="checkbox" name="available_days_week" value="1" >Sunday<br> 
                    <input type="checkbox" name="available_days_week" value="2" >Monday<br> 
                    <input type="checkbox" name="available_days_week" value="3" checked="checked" >Tuesday<br> 
                    <input type="checkbox" name="available_days_week" value="4" >Wendesday<br> 
                    <input type="checkbox" name="available_days_week" value="5" >Thursday<br> 
                    <input type="checkbox" name="available_days_week" value="6" >Friday<br> 
                    <input type="checkbox" name="available_days_week" value="7" >Saturday<br> 

          </td> 
         </tr> 

因爲你已注意到了這一點西港島線的兩倍 我的繼承人靜態代碼,將返回周的天

//return days per week checkbox 
    public static function getDaysPerWeekCheckbox(){ 
    return array(
     1 =>'Sunday', 
     2 =>'Monday', 
     3 =>'Tuesday', 
     4 =>'Wendesday', 
     5 =>'Thursday', 
     6 =>'Friday', 
     7 =>'Saturday' 
    ); 

    } 

如何避免在編輯頁面顯示時不會加倍的數據? 有人可以幫我想出這件事嗎?任何幫助,非常感激。

回答

0

您正循環不必要的。試試這個:

<?php $days = getDaysPerWeekCheckbox(); ?> 
<?php foreach($days as $index => $day_name): ?> 
    <input type="checkbox" name="available_days_week" value="<?php echo $index ?>" <?php echo(in_array($index, $daysPerWeeks1)) ? 'checked="checked"' : ''?> ><?php echo $day_name; ?><br> 
<?php endforeach; ?> 
+0

確定生病試試這個代碼 – 2014-11-23 04:34:38

+0

在這行代碼有錯誤在你 ?」< ?php echo(in_array($ index,$ daysPerWeeks1)?'checked =「checked」':''?>><?php echo $ day_name;?>
2014-11-23 04:35:17

+0

得到這個錯誤 函數名必須是字符串 這一行代碼 <?php $ days = $ daysPerWeekCheckboxes();?> – 2014-11-23 04:40:01