【问题标题】:Codeigniter: repopulate dropdowns array using set_valueCodeigniter:使用 set_value 重新填充下拉数组
【发布时间】:2012-10-22 03:11:17
【问题描述】:

我有这段代码:

<?php for ( $i=1; $i<=9; $i++ ) : ?>
  <select name="codes[]">
    <?php foreach ( $errors as $error ) : ?>
    <option value="<?=$error->code?>" <?=set_select( 'codes', $error->code )?>><?=$error->fault?></option>
    <?php endforeach; ?>
  </select>
<?php endfor; ?>

即使我在控制器中添加了验证规则,set_select 部分似乎也无法正常工作:

$this->form_validation->set_rules( 'codes', '', '' );

提交表单后,所有下拉列表都会获取最后一个下拉列表的选定值。

知道如何解决这个问题吗?用户指南未提供有关此特定情况的详细信息。

谢谢。

【问题讨论】:

    标签: arrays codeigniter drop-down-menu populate


    【解决方案1】:

    抱歉,累死了,我没有看到你设置规则,试着给它一个真正的规则,看看是否有效。因为它总是有一个值,所以应该可以正常工作。

    $this->form_validation->set_rules('codes','codes','trim|required');
    

    【讨论】:

    • 嗨,瑞克。谢谢,但它仍然不起作用。我在验证中将方括号添加到字段名称,因为它返回错误(已传递字符串,需要数组): $this->form_validation->set_rules( 'codes[]', 'codes', 'trim|required' ) ;
    • 嗯,我刚刚注意到数组和递增循环。尝试在类似的循环中运行验证。它试图验证一个控件而不是所有控件,并且它没有什么可返回的。例如代码[1] 正在发送数据,但由于与规则不匹配,因此未经过验证。
    猜你喜欢
    • 2012-08-12
    • 2012-08-12
    • 2014-02-09
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多