【问题标题】:Codeigniter, problems using set_select() and set_checked()Codeigniter,使用 set_select() 和 set_checked() 的问题
【发布时间】:2013-06-23 07:38:11
【问题描述】:

我在我的表单中使用 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'); ?> /> 

我们将不胜感激。

【问题讨论】:

  • 为什么不使用 form_dropdown。 stackoverflow.com/questions/8049458/…
  • 有没有办法让它按照我制作下拉菜单的方式工作?因为更改为我正在使用的方法意味着在 5 个视图中更改大约 10 个下拉菜单,然后我需要编辑模型中的所有函数,这些函数会拉取数据,因为 form_dropdown 使用的数组与我生成我的数组的方式不同,因为它使用 key- >value,我只将每个键的值用于选项中的值和文本。
  • 不知道,我只用过form_dropdown。不知道你为什么要长期这样做,除非 form_dropdown 不做你需要的事情。
  • 我可以肯定地看到自己将来会使用它,但这个项目是我第一次使用 codeigniter,这个项目规模很大,学到了很多东西,但仍在学习。只是想知道是否有更简单的方法让 set_selected 工作而无需重做这么多代码。

标签: php html codeigniter validation loops


【解决方案1】:

看起来您在选项值的引号内有 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> 

【讨论】:

  • 为我节省了大量时间!你是某种巫师!
【解决方案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>

【讨论】:

  • 感谢您抽出宝贵时间发布此内容,我不再需要此内容,但我相信其他人会发现它很有用。
  • @Sam 欢迎,乐于助人:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 2012-12-09
  • 2011-11-08
  • 1970-01-01
相关资源
最近更新 更多