如何在codeigniter中获取值数组?

时间:2017-04-18 04:36:23

标签: php arrays codeigniter codeigniter-3

如何在codeigniter中获取值数组? 当我得到值post post数组并回显值时,我有问题。提交时如何显示帖子价值? 这里出现错误信息:

A PHP Error was encountered

Severity: Notice

Message: Uninitialized string offset: 0

Filename: controllers/blablabla

查看html:

<?php $i=0; foreach ($doc as $row) { ?>
<label>
<input name="size[<?php echo $i; ?>]" type="checkbox" value="<?php echo $row['doc']; ?>">&nbsp;&nbsp;<?php echo $row['doc']; ?>
</label>
<?php $i++; } ?>

控制器:

$size = $this->input->post('size');
for ($i=0; $i<count($doc); $i++) 
{
   echo $size[$i];
}

4 个答案:

答案 0 :(得分:3)

更改复选框的名称,如下所示,

<?php foreach ($doc as $row) { ?>
<label>
  <input name="size[]" type="checkbox" value="<?php echo $row['doc']; ?
  >">&nbsp;&nbsp;<?php echo $row['doc']; ?>
</label>
<?php } ?>

在post方法中,

$size_arr = $this->input->post('size');
foreach($size_arr as $v){
  echo $v;
}

如果由于某种原因它无法正常工作,请查看,

$size_arr = $_POST['size'];
foreach($size_arr as $v){
  echo $v;
}

修改

另一种选择,

$arr = $this->input->post();
$size_arr = $arr['size'];
foreach($size_arr as $v){
  echo $v;
}

核心版,

$arr = $_POST;
$size_arr = $arr['size'];
foreach($size_arr as $v){
  echo $v;
}

答案 1 :(得分:2)

不需要在视图文件中的复选框名称中使用$ i只需要一个数组

查看档案

<?php foreach ($doc as $row) { ?>
<label>
<input name="size[]" type="checkbox" value="<?php echo $row['doc']; ?>">&nbsp;&nbsp;<?php echo $row['doc']; ?>
</label>
<?php  } ?>

控制器

$countsize = count($this->input->post('size'));
for ($i=0; $i<$countsize ; $i++) 
{
   echo $this->input->post('size')[$i];
}

答案 2 :(得分:1)

您的html表单代码应如下所示。

<input name="size[<?php echo $i; ?>]" type="checkbox" value="<?php echo $row['doc']; ?>"> 

在内部控制器中,您的代码应如下所示。

$size = $this->input->post('size');
foreach($size as $sa)  
{
   echo $sa;
}

答案 3 :(得分:0)

这个对我有用

在查看文件中

<div id="area_input">
  <div id="inputan" class="form-inline">
    <div class="form-group col-sm-6">
      <input type="text" class="form-control" name="size[]" placeholder="ukuran">
    </div>  
    <div class="form-group col-sm-6">
      <input type="text" class="form-control" name="size[]" placeholder="ukuran">
    </div>   
    <div class="form-group col-sm-6">
      <input type="text" class="form-control" name="size[]" placeholder="ukuran">
    </div>
    <div class="form-group col-sm-6">
      <input type="text" class="form-control" name="size[]" placeholder="ukuran">
    </div>            
  </div>  
</div> 

您可以根据需要重复输入。

在控制器文件中

$data = array(
            'size' => $this->input->post('size'),
        );

您可以使用 print_r($data) 检查数组的结构,或使用以下方法打印它们:

foreach ($data as $key => $value) {
   foreach ($value as $detail) {
        echo $detail;
        echo "<br>";
    }
}