繁体   English   中英

具有动态多维数组输入的Codeigniter set_value()

[英]Codeigniter set_value() With Dynamic Multidimensional Array Inputs

好的,我正在生成一个表单,该表单已预先填充了数据库中的现有值:

视图:

    <tr>
      <td><input name="set[<?php echo $cur_set['id']; ?>][order]" value="<?php echo $cur_set['wo_order']; ?>">
          <input type="hidden" name="set[<?php echo $cur_set['id']; ?>][ex_id]" value="<?php echo $cur_set['ex_id']; ?>"></td>
      <td><input name="set[<?php echo $cur_set['id']; ?>][weight]" value="<?php echo $cur_set['weight']; ?>"></td>
      <td><input name="set[<?php echo $cur_set['id']; ?>][reps]" value="<?php echo $cur_set['reps']; ?>"></td>
    </tr>

输出示例:

    <tr>
      <td><input name="set[3][order]" value="1">
          <input type="hidden" name="set[3][ex_id]" value="1"></td>
      <td><input name="set[3][weight]" value="50.00"></td>
      <td><input name="set[3][reps]" value="5"></td>
    </tr>

因此,我有一定范围的这些<tr>每个都可以有一个唯一的'id',但是它们都有相同数量的辅助索引[order], [ex_id], [weight][reps]

我无法弄清楚两件事:

  1. 当我不知道[id]是什么时,如何应用set_value()语法。
  2. 如何在表单上设置验证规则。 我努力了:

     $this->form_validation->set_rules('set[][order]', 'Sets', 'required'); 

但是它似乎无法工作,因为找不到set[][order] ...我可以在其中放一些通配符吗? 喜欢set[*][order]吗?

提前致谢。

乔恩

在控制器中,您在其中获取数据并将其存储在变量中(我将其称为$ data),请执行以下操作:

$data = $this->MODEL_NAME->METHOD_NAME();

foreach($data as $set){
    $this->form_validation->set_rules("set[{$set['id']}][order]");
    $this->form_validation->set_rules("set[{$set['id']}][weight]");
    etc...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM