从另一个视图中加载带有表单的codeigniter视图
使用codeigniter,我尝试在foreach循环中加载一个视图,如下所示:从另一个视图中加载带有表单的codeigniter视图,codeigniter,Codeigniter,使用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->
$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>
检查当前表单周围是否已有表单。Chrome是一种浏览器,它不接受这一点,并删除了第二种形式。在表单中使用表单是一种不好的做法,我建议您找到一种不同的解决方案来处理表单。答案略偏左,但请看一看。我已经使用过几次了,它似乎非常适合从数组生成表单。这是一个有点棘手的让你的头周围开始,但它的工作很好,一旦你已经进入它
基本思想是从普通控制器实现表单控制器,然后将其输出到视图文件中。对于您正在尝试的内容,它可能是一个更优雅(更可持续)的解决方案。您也可以发布主视图文件的php代码。我想看看你们是如何处理$home数据的——问题可能就在这里。你们试过给你们的表单一些属性吗?您使用的浏览器是chrome吗?可能是您必须对表单标记()执行操作。对于这种特定的东西,您应该粘贴实际的代码,而不是它看起来的样子。我会寻找的东西:匹配开始和结束标记,匹配“”,从数据中随机引用。这样的编程也太复杂了。只需将代码放在视图中。复杂性==容易出错。从我对chrome的了解来看,他会删除任何非标准的工作属性,这在我身上发生过一次。。所以我认为你应该像@MichaelOzeryansky说的那样,努力使你的形式更加标准化。这件事今天发生在我身上,我记得一两天前你的问题。我试图将一个表单加载到另一个表单中,但内部表单被删除。我不知道CI是在删除它还是在删除浏览器(尽管我认为是浏览器)。您可以检查是否无意中尝试嵌套表单。
<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>