即使迭代数组为空,如何显示表单字段?

时间:2014-03-26 19:49:34

标签: php arrays codeigniter

Question Updated:

我正在使用codeigniter,我遇到的问题是,如果数组包含值,那么表单元素将显示。如果数组为空,则不会显示整个表单。所以想象一下这是一个人选择编辑记录的编辑表格。并且无论出于什么原因,我们都会说正在编辑的记录没有记录,它完全是空的。并且还要说id必须是可见的并且可以编辑,无论它是否为空。所以会发生什么,如果记录为空,则不会显示整个表单元素。所以我试图做的就是无论是否有记录都要显示它。

<?php

//controler

public function show()
{
    $this->load->model('my_model');

    $data = array(
        'data' => $this->my_model->getdata();
    );
    $this->load->view('somepage', $data);
}



//model
public function my_model()
{
    $q = $this->db->get_where('some query', array('id' => $id));
    if($q->num_rows() == 1)
    {
        foreach($q->result() as $row)
        {
            $rows[] = $row;
        }
        return $rows;
    }
    else
    {
        return array();
    }
}





//view
//note: this will only work if the array has data, otherwise everything between the foreach statement wont show.
<?php foreach($data as $row) : ?>

<input type="text" name="something" value="<?=$row->column1;?>">
<input type="text" name="something" value="<?=$row->column2;?>">
<input type="text" name="something" value="<?=$row->column3;?>">
<input type="text" name="something" value="<?=$row->column4;?>">
<input type="text" name="something" value="<?=$row->column5;?>">


<?php endforeach; ?>

1 个答案:

答案 0 :(得分:0)

在您的视图中

<?php
if (!empty($data)) {
    var_dump($data);
} else {
    //print out nothing
}
?>

或者您可以执行以下操作

<p><?= (!empty($data)) ? $data : "" ?></p>