我不在CodeIgniter中从db表中提取数据并将其显示在bootstrap模式窗口中时遇到任何困难。使用此按钮链接;
<a href='#' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a>
我能够访问模态窗口没问题,并显示以下编码的结果;
<!-- alert view -->
<div class='modal fade' id='myModal' role='dialog'>
<div class='modal-dialog'>
<!-- Modal content-->
<div class='modal-content'>
<div class='modal-header'>
<?php
foreach ($article->result() as $a) {?>
<button type='button' class='close' data-dismiss='modal'>×</button>
<h1 class='modal-title'><?php echo $a->title; ?></h1>
</div>
<div class='modal-body'>
<h4><?php echo $a->category_name; ?></h4>
<h4><?php echo $a->public_date; ?></h4>
<h4><?php echo $a->description; ?></h4>
<?php } ?>
</div>
<div class='modal-footer'>
<button type='button' class='btn btn-default' data-dismiss='modal'>Close</button>
</div>
</div>
</div>
我遇到的确切问题是对foreach()
循环的返回结果施加限制。如果我在$i=0; if($i==1) break;
之前使用foreach()
之类的内容,则会获得相同内容的article_id结果。为了增加我的困惑和困难,当我尝试article_id
href
链接的View
时,所有数据库表条目被拉入模态窗口。
我尝试了处理单个结果数组的CI文档中的查询构建器章节,因为这最适用于我的情况。这是以下方法的基础;
CONTROLLER
$data['a'] = $this->article_model->get_modal();
$this->load->view('article_submit',compact('article', 'page_link', 'category'), $data);
MODEL
function get_modal()
{
$results = array();
$this->db->select('*');
$this->db->from($this->tbl_article);
$query = $this->db->get();
if($query->num_rows() > 0)
{
$results = $query->result();
}
return $results;
}
查看
<?php
foreach ($article->result() as $a) {?>
<button type='button' class='close' data-dismiss='modal'>×</button>
<h1 class='modal-title'><?php echo $a->title; ?></h1>
</div>
<div class='modal-body'>
<h4><?php echo $a->category_name; ?></h4>
<h4><?php echo $a->public_date; ?></h4>
<h4><?php echo $a->description; ?></h4>
<?php } ?>
我最终保留了 VIEW 编码,因为它在没有模型/控制器代码的情况下为我工作。我实际上花了一个多小时进行研究,拼命地确定在Google或SO上没有任何答案。我甚至还给了它一个Doug Flutie Hail Mary
;
查看
<?php
$i=0;
foreach ($article->result() as $a) if($i==1) break; {?>
<button type='button' class='close' data-dismiss='modal'>×</button>
<h1 class='modal-title'><?php echo $a->title; ?></h1>
</div>
<div class='modal-body'>
<h4><?php echo $a->category_name; ?></h4>
<h4><?php echo $a->public_date; ?></h4>
<h4><?php echo $a->description; ?></h4>
<?php $i++; ?>
<?php } ?>
我的脑袋在这一点上确实很重要......感谢周围的任何线索。它也可能是我完全失踪的东西以及人类错误(lol!)没有假期。
更新
目前,我一直试图使用@manu joseph&amp; amp; amp; @webcrazymaniac - @webcrazymaniac:不确定我是否理解你关于如何构建文章列表的问题。可能是因为我没有为您发布足够的代码 - 请告知我您需要查看的内容。至于将echo
包含在View
链接的#modalItem中 - 对我来说没有做任何不同的事情。 @manu joseph,我无法将$article->result()
更改为article->row()
,因为前者是文章数据显示在页面上的方式(即);
<?php
foreach ($article->result() as $a)
{
echo "<tr>".
"<td>$a->article_id</td>".
"<td>$a->title</td>".
"<td>$a->category_name</td>".
"<td>$a->access_level</td>".
"<td>$a->public_date</td>".
"<td><img class='img-responsive img-circle' style='width:100%; height:50px' src='".base_url()."images/posts/$a->image' title='Image' ></td>".
"<td>".
"<a href='".$a->article_id."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a> ".
"<a href='".base_url()."article/view/$a->article_id' class='btn btn-primary btn-sm'>Edit</a> ".
"<a href='".base_url()."article/delete/$a->article_id' class='btn btn-danger btn-sm'>Delete</a> ".
"</td>".
"</tr> ";
}
?>
以上是db结果被回显的表。 @manu joseph,我最初注意到$ i = 0;当我不尝试在article_id
按钮链接中添加View
时,行只能正常运行。 那个答案在哪里,因为,当发生这种情况时,我又回到了模式只显示基于点击{的单个列表的问题{1}}按钮链接,但无论点击什么View
按钮链接,它都会抓住相同的奇异结果显示在模态中。有趣的是,现在我以前的分页问题是不存在的(哈哈!)。
关闭我可以品尝它......
一小时的调整让我得到了只显示一篇文章的期望(如果是偏斜的)结果&#39;细节;
MODAL WINDOW VIEW LINK
View
模式内容
"<a href='".$a->article_id."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a> ".
我不知道您可以看到(可能带图像放大)光标箭头悬停在页面上的第一个 <div class='modal-content'>
<div class='modal-header'>
<?php
foreach ($article->result() as $a) $i=0; if($i==1) break; {
?>
<button type='button' class='close' data-dismiss='modal'>×</button>
<h1 class='modal-title'><?php echo $a->title; ?></h1>
</div>
<div class='modal-body'>
<h4><?php echo $a->category_name; ?></h4>
<h4><?php echo $a->public_date; ?></h4>
<h4><?php echo $a->description; ?></h4>
<?php $i++; ?>
<?php } ?>
</div>
<div class='modal-footer'>
<button type='button' class='btn btn-default' data-dismiss='modal'>Close</button>
</div>
</div>
按钮上,但未返回特定的article_id。就像我说的那么近,我可以尝到它。
苦难指数更新:
非常感谢@manu joseph继续尝试让我正确 - 代码;
View
<?php
$i = 0;
foreach ($article->result() as $a)
{
echo $i."<br>";
if( $i == 1 ) break;
?>
<button type='button' class='close' data-dismiss='modal'>×</button>
<h1 class='modal-title'><?php echo $a->title; ?></h1>
<div class='modal-body'>
<h4><?php echo $a->category_name; ?></h4>
<h4><?php echo $a->public_date; ?></h4>
<h4><?php echo $a->description; ?></h4>
</div>
<?php
$i++;
}
die();
?>
的值在标题的顶部回显,递增的值$i
在模态的底部回显,$i++
按钮消失。我正在尝试一下你的测序,因为它比我现在更整洁。
我认为需要解决的是close
按钮链接,因为当它们悬停时,会显示正确的View
,但模式始终只能设置为记录集,永不递增,以显示任何其他文章ID下的内容;
article_id
我知道我正好在这里弄乱,并且正在努力通过错过一些至关重要的东西与其他文章联系起来。您需要回答的任何其他问题,请随时提出。现在要睡觉了......
更新
@webcrazymaniac列出了一个解决方案,它带了我几个读数来实际捕捉到他的意图,帮助我进入一个更好的方向并保持位置@当下;
"<a href='".$a->article_id."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a> ".
以上是将模态放入视图的链接。我现在能够将第一个db结果拉入页面选择的所有模态中;
foreach ($article->result() as $a) {
echo "<a href='".base_url('#myModal/$a->art_id')."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a> ".
<?php } ?>
使用array_slice()是一种限制从链接中提取了多少结果的方法,因为我无法在不破坏与分页相关的限制的先前(私有)定义的情况下指定限制(并且我<在模型中强>绝对并不想打扰那个)。我目前的模态功能;
<!-- alert view -->
<div class='modal fade' id='myModal' role='dialog'>
<div class='modal-dialog'>
<!-- Modal content-->
<?php
$i = 0;
if (!$i = 0){
foreach (array_slice($article->result(), 0, 1) as $a) {
?>
<div class='modal-content' id='myModal<?php echo $a->art_id;?>'>
<div class='modal-header'>
<button type='button' class='close' data-dismiss='modal'>×</button>
<h4 class='modal-title'><?php echo $a->title;?></h4>
</div>
<div class='modal-body'>
<h2><?php echo $a->description;?></h2>
</div>
<div class='modal-footer'>
<button type='button' class='btn btn-default' data-dismiss='modal'>Close</button>
</div>
</div>
<?php
break;
}
}
?>
</div>
距离我的分辨率只有一个距离很远的距离,我现在很难从脑中看到森林中的树林,而且我坚信它是最微不足道的决议,但是不能看到它。
答案 0 :(得分:1)
您应该为表中的每个元素使用id。然后在按钮中调用该ID:
<a href='#modalItem<?php echo $a->id;?>' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a>
应该这样做,虽然我的回答可能更完整,但我觉得你没有发布你应该张贴的所有内容。更准确地说,我无法了解如何构建模态窗口背后的文章列表。
<强>更新强> 如果我理解这一点,这是切换模态元素的按钮:
<a href='".$a->article_id."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a>
如果是这样,您必须在href中添加&#39; id&#39;(#)simbol:
<a href='#articleModal".$a->article_id."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a>
(不确定是什么触发了您的模态窗口,如果它是data-target='#myModal'
,那么您必须在其中进行修改:#myModal".$a->article_id."
)
这告诉浏览器每个模态窗口都有一个唯一的id,对应于每篇文章。结果将是#articleModal[x]
在同一页面上的链接。
只有在这一点上,你只构建了一个模态,(当你开始时有几篇文章,现在有一篇文章)。这是因为你在模态元素中使用foreach
迭代 ,而不是使用它来构建不同的模态窗口,每个文章使用不同的ID 。
你需要做的是这样的事情:
<?php
foreach ($article->result() as $a){
?>
<div class='modal-content' id='articleModal<?php echo $a->article_id;?>'>
<div class='modal-header'>
<button type='button' class='close' data-dismiss='modal'>×</button>
<h1 class='modal-title'><?php echo $a->title; ?></h1>
</div>
<div class='modal-body'>
<h4><?php echo $a->category_name; ?></h4>
<h4><?php echo $a->public_date; ?></h4>
<h4><?php echo $a->description; ?></h4>
</div>
<div class='modal-footer'>
<button type='button' class='btn btn-default' data-dismiss='modal'>Close</button>
</div>
</div>
<?php } ?>
,或类似的东西。
我们的想法是拥有一个独特的模态窗口,每个文章都有唯一的ID,并使用相应的按钮进行唯一调用。
答案 1 :(得分:0)
总结一下,你的第一个问题
我遇到的确切问题是对返回的结果施加限制 foreach()循环。如果我使用$ i = 0之类的东西;如果($ i == 1)休息; 在foreach()之前,我得到了相同的内容article_id结果。
我相信你需要限制视图中显示的行数?如果是的话,你需要在foreach循环中进行检查(你已经在括号开始之前放了:)),如下所示: -
<?php
$i=0;
foreach ($article->result() as $a) {
if($i==1) break;
?>
<button type='button' class='close' data-dismiss='modal'>×</button>
此外,如果您只想获得第一行,请转到
foreach ($article->row() as $a) {
以下编辑的行&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
嗨,@ HomeOffice我修改了以下视图代码: -
<?php
$i = 0;
foreach ($article->result() as $a) {
echo $i."<br>";
if( $i == 1 ) break;
?>
<button type='button' class='close' data-dismiss='modal'>×</button>
<h1 class='modal-title'><?php echo $a->title; ?></h1>
<div class='modal-body'>
<h4><?php echo $a->category_name; ?></h4>
<h4><?php echo $a->public_date; ?></h4>
<h4><?php echo $a->description; ?></h4>
</div>
<?php
$i++;
}
die();
?>
让我知道你的输出是什么? ..
另外,让我试试$ article-&gt; row()?
答案 2 :(得分:-1)
实际上 - 根据我的问题的措辞 - 我已经回答了;
<?php
foreach (array_slice($article->result(), 0, 1) as $a) {
?>
使用array_slice
我能够实现将结果限制在模态中。无法通过id返回匹配的文章内容的问题超出了原始问题的范围,并且需要其“问题”。独立的焦点。分别感谢 @manu joseph 和 @webcrazymaniac ,感谢他们在这个问题上的努力。