我需要从循环中创建的表单中发布值。这是我的看法
<?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'),
}