2017-06-14 320 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. 
}