3

使用codeigniter,我一直在尝试在foreach循环中加载一个视图,如下所示:

$posts = $this->postslibrary->getAllPosts();
foreach($posts as $post){
  $home['content'][$i] = $this->load->view('post', $post['data'], true);
  $i++;
}
$this->load->view('head');
$this->load->view('home', $home);
$this->load->view('footer');

这些帖子视图中的每一个看起来都像这样:

<div class="postnum<?=$post_num?>">
  <p>Posted by: <?=$poster_name?></p>
  <p>Reply to: <?=$poster_name?></p>
  <form>
  <input type='text' />
  <input type='submit' />
  </form>
</div>

并且它们在“主页”视图中大部分成功加载(为了彻底性,在下面)。

<div ="posts">
  <?php
    for($i=0;$i<$count;$i++)
    {
      echo($content[$i]);
    }
  ?>
  <div class="clear"></div>
  <a href='/posts/browse/'>Load more items</a>
</div>

但我的输出最终看起来像:

<div class='posts'>
  <div class='postnum1'>
    <p>Posted By: Jim</p>
    <p>Reply to Jim</p>
    <input type='text' />
    <input type='submit' />
  </div>
</div>

为什么我的表单标签没有通过?

4

2 回答 2

0

检查您是否已经有一个围绕当前表单的表单。Chrome 是不接受这一点并删除第二种形式的浏览器之一。在表单中使用表单是不好的做法,我建议您找到不同的解决方案来处理表单。

于 2012-07-26T19:51:33.970 回答
0

稍微偏左的答案,但看看CodeIgniter Form Generator。我已经用过几次了,它似乎非常适合从数组生成表单。一开始就绕开它有点棘手,但是一旦你进入它,它就会很好地工作。

基本思想是您从普通控制器实现一个表单控制器,然后将其输出到您的视图文件中。对于您正在尝试的东西,它可能是一个更优雅(和可持续)的解决方案。

于 2012-10-17T14:52:10.163 回答