使用codeigniter

时间:2016-07-06 03:31:42

标签: php twitter-bootstrap codeigniter

在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'>&times;</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时,所有数据库表条目被拉入模态窗口。

Pictured is the situation the coding is in ATM

我尝试了处理单个结果数组的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'>&times;</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'>&times;</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> &nbsp;".
"<a href='".base_url()."article/view/$a->article_id' class='btn btn-primary btn-sm'>Edit</a> &nbsp;".
"<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> &nbsp;".

图片效果 end desired result

我不知道您可以看到(可能带图像放大)光标箭头悬停在页面上的第一个 <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'>&times;</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


结果如下图所示; Code rewrite by SO member @manu joseph


<?php $i = 0; foreach ($article->result() as $a) { echo $i."<br>"; if( $i == 1 ) break; ?> <button type='button' class='close' data-dismiss='modal'>&times;</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> &nbsp;".

以上是将模态放入视图的链接。我现在能够将第一个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> &nbsp;".
<?php } ?>  

Current code rewrite results

使用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'>&times;</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>

距离我的分辨率只有一个距离很远的距离,我现在很难从脑中看到森林中的树林,而且我坚信它是最微不足道的决议,但是不能看到它。

3 个答案:

答案 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'>&times;</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'>&times;</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'>&times;</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();
?>
  1. 打印&#34; i&#34;的值。
  2. 删除了一些不必要的div。
  3. 放一个骰子()。
  4. 让我知道你的输出是什么? ..

    另外,让我试试$ article-&gt; row()?

答案 2 :(得分:-1)

实际上 - 根据我的问题的措辞 - 我已经回答了;

  <?php 
  foreach (array_slice($article->result(), 0, 1) as $a) {      
  ?>  

使用array_slice我能够实现将结果限制在模态中。无法通过id返回匹配的文章内容的问题超出了原始问题的范围,并且需要其“问题”。独立的焦点。分别感谢 @manu joseph @webcrazymaniac ,感谢他们在这个问题上的努力。