2017-06-14 258 views
1

我從數據庫中填充數據單選按鈕,想的第一個值檢查的第一個值作爲默認,但我對如何做到這一點不知道。這是我迄今爲止所做的編碼。檢查單選按鈕(笨)

查看

<?php if($designThemes != null){; ?> 

<?php foreach ($designThemes as $designTheme) { ?> 

<?php 
$designThemesValue = (set_value('theme_name') ? set_value('theme_name') : $designTheme['slug_url']); 
$designThemesAttr = array(
    'name' => 'designThemes', 
    'value' => $designThemesValue, 
); 
?> 
<div class="col-md-4 col-sm-4"> 
    <div class="radio custom-radio"> 
     <label> 
      <?php echo form_radio($designThemesAttr); ?> 
      <span class="fa fa-circle"></span> <?php echo $designTheme['theme_name'] ?> 
     </label> 
    </div> 
</div> 
<?php }}; ?> 

如果我在$designThemesAttr = array()添加'checked' => TRUE系統將檢查作爲默認的單選按鈕的最後一個值,但我想檢查第一個值

+0

替換代碼_「如果我加上 '檢查'=> true在$ designThemesAttr =陣列( )系統會檢查單選按鈕的最後一個值作爲默認值,但我想檢查第一個值。「_ - 當然,因爲您將爲單選按鈕設置 - 您只需要爲第一個值一,所以你的問題歸結爲如何確定你是否在一個foreach l的第一次迭代OOP,所以... https://www.google.com/search?q=foreach+loop+check+if+first+iteration – CBroe

+0

該搜索的第一個命中 - https://stackoverflow.com/questions/1070244 /如何到確定最第一和最後一個迭代-IN-A-的foreach循環 – TimP

回答

2

解決您的問題,您可以通過條件語句設置爲這個

<?php if($designThemes != null){; ?> 

<?php $i=1;foreach ($designThemes as $designTheme) { ?> 

<?php 
$designThemesValue = (set_value('theme_name') ? set_value('theme_name') : $designTheme['slug_url']); 
$designThemesAttr = array(
    'name' => 'designThemes', 
    'value' => $designThemesValue, 
); 
if($i==1){ 
    $designThemesAttr['checked'] = TRUE; 
} 
?> 
<div class="col-md-4 col-sm-4"> 
    <div class="radio custom-radio"> 
     <label> 
      <?php echo form_radio($designThemesAttr); ?> 
      <span class="fa fa-circle"></span> <?php echo $designTheme['theme_name'] ?> 
     </label> 
    </div> 
</div> 
<?php $i++; }}; ?> 
0

'checked' => TRUE in $ designThemesAttr = array()系統會檢查單選按鈕的最後一個值作爲默認值。這是對的,因爲你在一個for循環中進行,並且在一個組內只有一個無線電選擇。所以最後一個顯示檢查。

因此保持一個變量來計算迭代,如:

$ count = 1;

if($count = 1;) 
{ 
    // use 'checked' => TRUE here 
    $count++; // The value is incremented so that the if condition can't run again. This will add 'checked' => TRUE to first radio only. 
}