【发布时间】:2012-06-22 18:10:40
【问题描述】:
使用 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>
为什么我的表单标签没有通过?
【问题讨论】:
-
你也可以发布你的主页视图文件的php代码。我想看看你如何处理 $home 数据 - 问题可能就在那里。
-
你试过给你的表单一些属性吗?从那以后,您使用哪个浏览器是 chrome ?
-
您可能必须对表单标签 (w3.org/TR/html401/interact/forms.html#h-17.3) 进行操作。对于这个特定的东西,你应该粘贴你的实际代码,而不是它看起来的样子。我要寻找的东西:匹配的开始和结束标签,匹配“”,数据中的随机引号。像这样的编程也太复杂了。只需将您的代码放在视图中。复杂性 == 容易出错。
-
从我对 chrome 的了解来看,他会删除任何非标准的工作属性,这曾经发生在我身上。所以我认为你应该尝试让你的表单更加标准化,就像@MichaelOzeryansky 说的那样。
-
这件事今天刚发生在我身上,我记得一两天前你的问题。我试图在另一个表单中加载一个表单,而内部表单被删除了。我不知道 CI 是删除它还是浏览器(尽管我认为它是浏览器)。您可能会检查您是否无意中尝试嵌套表单。
标签: codeigniter