Php 即使迭代数组为空,如何显示表单字段?
我使用的是codeigniter,我遇到的问题是,如果数组包含值,那么表单元素就会显示出来。如果数组为空,则不会显示整个窗体。因此,想象一下这是一个编辑表单,其中一个人选择编辑一条记录。不管出于什么原因,被编辑的记录没有记录,它完全是空的。也就是说,无论id是否为空,它都必须可见且可编辑。因此,如果记录为空,则不会显示整个表单元素。所以我要做的是让它显示出来,不管是否有记录Php 即使迭代数组为空,如何显示表单字段?,php,arrays,codeigniter,Php,Arrays,Codeigniter,我使用的是codeigniter,我遇到的问题是,如果数组包含值,那么表单元素就会显示出来。如果数组为空,则不会显示整个窗体。因此,想象一下这是一个编辑表单,其中一个人选择编辑一条记录。不管出于什么原因,被编辑的记录没有记录,它完全是空的。也就是说,无论id是否为空,它都必须可见且可编辑。因此,如果记录为空,则不会显示整个表单元素。所以我要做的是让它显示出来,不管是否有记录 Question Updated: 在你看来 <?php //controler public functio
Question Updated:
在你看来
<?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; ?>
或者你可以做下面的事情
<?php
if (!empty($data)) {
var_dump($data);
} else {
//print out nothing
}
?>
这与我一直在做的事情几乎相同,但是else语句没有任何作用,因此不会显示记录。我已经修改了我的问题,以显示我正在尝试做的事情。请在这里发布一个视图,所以问题是crystal Clear我正在查询本应作为单独表连接在一起的表,其中一个表没有引用id,并且完全为空。我知道这一点,但我试着看看如何才能做到这一点,否则。因为我认为这是一个坏主意,所以最初我只是向空表插入了一个引用id,所以当连接它们时,我会得到一个输出。感谢您的帮助:
<p><?= (!empty($data)) ? $data : "" ?></p>