代码之家  ›  专栏  ›  技术社区  ›  Abaij

在CodeIgniter 3中获取set_value时发生数组到字符串的转换错误

  •  0
  • Abaij  · 技术社区  · 2 年前

    我有一张经过验证的表格。当验证失败时,我想使用 set_value 在文本框中。这些文本框使用数组作为名称。

    <input type="text" name="speed[]" value="<?php echo set_value('speed[]') ?>" />
    

    我相信这正是文件所指出的 here 。但是当提交表单时,我收到了“数组到字符串转换”错误。我想知道如何正确实施这一点。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Marleen    2 年前

    您需要在中的方括号之间添加一个索引 set_value

    假设您使用循环打印文本框,则可以执行以下操作:

    <?php for ($i = 0; $i < 10; $i++) : ?>
        <input type="text" name="speed[]" value="<?php echo set_value('speed['.$i.']') ?>" />
    <?php endfor; ?>
    

    要分别验证/显示每个字段的错误,请在循环中设置验证规则:

    for ($i = 0; $i < 10; $i++) {
        $this->form_validation->set_rules('speed['.$i.']', 'Speed', 'required');
    }
    

    然后可以在中使用索引 form_error :

    <?php for ($i = 0; $i < 10; $i++) : ?>
        <input type="text" name="speed[]" value="<?php echo set_value('speed['.$i.']') ?>" />
        <?php echo form_error('speed['.$i.']'); ?>
    <?php endfor; ?>
    

    这一回答值得称赞: https://stackoverflow.com/a/17802145/3960296