Codeigniter,使用set_select()和set_checked()的问题

时间:2013-06-26 08:44:58

标签: php html codeigniter validation loops

我在表单中使用codeigniter的set_select和set_checked时遇到了一些问题,我将这些添加到我现有的表单中,因为我正处于开发阶段,我正在尝试整理一些事情并且验证失败验证重置表单不是当我还在为这个项目工作但现在它即将结束时,这个问题一直是个大问题。

首先是set_select,我有这个代码输出我从一个数组中下拉,该数组从控制器传递给视图,该数组从我的数据库中的表中获取结果,我实现这个的表格有10个下拉列表每个框对应于我的数据库中的一个表。无论如何这是代码:

<label for="rating">Rating: </label>
<select name="rating">
<?php
    if(isset($rating) && $rating != 'none') {
    echo '<option value="" '.set_select('rating', '', TRUE).'></option>';
        foreach($rating as $row)  { 
            echo '<option value="'.$row->door_rating_rating.set_select('rating', $row->door_rating_rating).'">'.$row->door_rating_rating.'</option>';
        }
    } else {
        echo '<option value="none">Nothing to list</option>';
    }
?>
</select> 

它只是不起作用,据我所知,我的代码不应该有问题,但这是我第一次使用它,我已经看过使用它的例子,但找不到一个例子在for循环中使用它所以我正在做什么甚至可能?

这是我在视图中的set_checked代码,这在验证失败后也无效:

Temporary Refuge Door?<input type="checkbox" class="temp_ref" name="tempref" value="1" <?php echo set_checkbox('tempref', '1'); ?> /> 

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:2)

看起来您在选项值的引号内有set_select。我把它移到了它之后。我还编辑了一下使用printf以提高可读性。

<label for="rating">Rating: </label>
<select name="rating">
<?php
    if(isset($rating) && $rating != 'none') {
     echo '<option value="" '.set_select('rating', '', TRUE).'></option>';
         foreach($rating as $row)  { 
             printf('<option value="%s" %s>%s</option>', $row->door_rating_rating, set_select('rating', $row->door_rating_rating), $row->door_rating_rating);
         }
     } else {
         echo '<option value="none">Nothing to list</option>';
     }
?>
</select> 

答案 1 :(得分:2)

要解决set_select(),请尝试以下操作。假设您有一个名为$ isps的数组,其中包含id和name字段。

<select id="isp" name="isp">
 <option value="" selected>Select a ISP</option>
 <?php foreach ($isps as $row) { ?>
<option value="<?php echo $row->id ; ?>" <?php echo set_select('isp', $row->id, False); ?> ><?php echo $row->name ; ?> </option> 
 <?php } ?>
</select>