Php 如何将数组值传递给控制器进行验证?

Php 如何将数组值传递给控制器进行验证?,php,arrays,forms,codeigniter,validation,Php,Arrays,Forms,Codeigniter,Validation,我试图将表单输入的值传递给控制器进行验证。使用数组在视图中填充这些值。问题是,我不知道如何从数组中为单个输入获取必要的“name”值,以便通过验证 在第一个视图中,表单输入是这样描述的: <?php echo form_checkbox('study_items[]', 'Medical History', FALSE); echo form_label('Medical History', 'Medical History');?> <br>

我试图将表单输入的值传递给控制器进行验证。使用数组在视图中填充这些值。问题是,我不知道如何从数组中为单个输入获取必要的“name”值,以便通过验证

在第一个视图中,表单输入是这样描述的:

<?php echo form_checkbox('study_items[]', 'Medical History', FALSE); 
    echo form_label('Medical History', 'Medical History');?>
    <br>
    <?php echo form_checkbox('study_items[]', 'Physical Exam', FALSE); 
    echo form_label('Physical Exam', 'Physical Exam');?>
    <br>
    <?php echo form_checkbox('study_items[]', 'Clinical Assessment', FALSE); 
    echo form_label('Clinical Assessment', 'Clinical Assessment');?>
在下一个视图中,示例输入的代码如下所示:

    <?php foreach ($si_items as $si_item) {


        echo $si_item. ' '. "$";

        $data001 = array(

              'name'        => $si_item,
                  'id'          => $si_item,
                  'value'       => '',
                  'maxlength'   => '10',
                  'size'        => '50',
                  'style'       => 'width:100px',

        );

        echo form_input($data001);
        echo '<br>';    
    }

 ?>
并允许用户为他们选择的项目输入美元金额,以满足上一页的需要

这部分代码的示例输出如下所示:

    <?php foreach ($si_items as $si_item) {


        echo $si_item. ' '. "$";

        $data001 = array(

              'name'        => $si_item,
                  'id'          => $si_item,
                  'value'       => '',
                  'maxlength'   => '10',
                  'size'        => '50',
                  'style'       => 'width:100px',

        );

        echo form_input($data001);
        echo '<br>';    
    }

 ?>
病史$_______________ 体检$_______________ 临床评估$_______________

其中空白是一个文本框,用于输入每个项目的价格。到目前为止,这一切都可以完美地显示用户在上一个视图中选中的每个表单输入框和标签

然而,我不知道如何获取每个输入的“名称”以验证它。验证控制器未将“$si_items”识别为名称值。这让我感到困惑,必须有办法做到这一点

在验证控制器中,我想检查每个条目是否有一个十进制值,即234.56作为用户输入


有什么想法吗?有没有更有效的方法来实现这一点?

我们缺少大量代码,但从您所展示的内容来看\

$data['si_items'] = $this->input->post('study_items');
是您的学习项目的分配,它是一个数组,这意味着您的foreach中的调用不应被

foreach ($si_items as $si_item) {
而是

foreach ($data['si_items'] as $si_item) {
或将您的初始任务更改为以下内容

$si_items = $this->input->post('study_items');

是的,我确实遗漏了很多代码,因为代码太多了。我想我已经很好地说明了我正在努力做什么以及我已经做了什么。我能补充什么让事情更清楚吗?谢谢。可能是echo$si_项行输出的一些示例。“”;如果这不符合您的要求,请在foreach之前打印$si_项目,并向我们展示OK。我编辑了原始问题,以显示我在数组中搜索时得到的输出。同样,该部分工作正常。假设显示的表单具有正确的名称作为字段名/id。。。您是否在询问如何获取值并在提交表单后循环验证?