从CodeIgniter中循环中创建的表单中获取post值


Getting post value from form created in loop in CodeIgniter

我需要从循环中创建的表单中发布值。这是我的看法

<?php echo form_open('test/'.$id); ?>
   for($i=0;$i<count($array['value']);$i++) 
 <input type="text" name="name[]" value="<?php echo $array['value'][$i]?>" />
<input type="submit" /> 
  <?php }?>
<?php echo form_close(); ?>

我的控制器

function test ($id)
{ 
    echo $this->input->post('name'),
}

这将返回一个值数组,但我需要提交的id中的值。

我需要从对应于id的数组中获取变量,例如,如果I=2,将有3个表单。如果我提交第二个表单,则需要单独发布第二个表格的值,但在这里,我获得的是数组

查看代码可能是这样的

<?php 
foreach($array['value'] as $key=>$value)//for loop was out of php tag
{ 
  echo form_open('controller/test/'.$id);// see controller name here 
 ?>         
   <input type="text" name="name" value="<?php echo $value;?>" />
   <input type="submit" name="submit_<?php echo $key; ?>" /> 
<?php echo form_close(); 
} ?>

控制器代码应为

function test ($id)
{ 
 echo $id ."<br>";
 echo $this->input->post('name');    
}

为什么不用这种方式制作三个表单??我还没有测试过,但请通过这种方式检查是否可以给你结果:

 for($i=0;$i<count($array['value']);$i++) 
  <?php echo form_open('test/'.$id); ?>
    <input type="text" name="name" value="<?php echo $array['value'][$i]?>" />
        <input type="submit" /> 
        <?php echo form_close(); ?>
    <?php }?>

//this is controller function 
function test($id) 
 {
    echo $id;
 }

为每次提交创建新表单,这样它将只发布您单击的一个表单的数据,并从名称中删除数组,这样您就可以将值选为字符串而不是数组

   for($i=0;$i<count($array['value']);$i++) 
      <?php echo form_open('test/'.$id); ?>
      <input type="text" name="name[]" value="<?php echo $array['value'][$i]?>" />
      <input type="submit" /> 
      <?php echo form_close(); ?>
  <?php }?>

然后你可以得到你所期望的

function test ($id)
{ 
    echo $this->input->post('name'),
}