2016-07-06 97 views
0

我是而不是在从CodeIgniter中的数据库表中提取数据并将其显示在引导模式窗口中时遇到任何问题。使用此按钮链接;在codeigniter中使用foreach()传递给引导模式的数据的限制

<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()循环的返回结果的限制。如果我在foreach()之前使用$i=0; if($i==1) break;之类的内容,我会得到与article_id结果相同的内容。为了增加我的困惑和困难,当我尝试使View链接article_idhref所有 db表条目被拉入模态窗口。

Pictured is the situation the coding is in ATM

我试图通过在CI文档与单个结果数组处理因为这是最适合我的处境查询生成器章节工作。这是以下方法的基础;

控制器

$data['a'] = $this->article_model->get_modal(); 
$this->load->view('article_submit',compact('article', 'page_link', 'category'), $data); 

模型

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; 
    } 

VIEW

<?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 } ?> 

我结束了保持查看编码,因为它没有模型/控制器代码为我工作。实际上,我花了一小时的时间研究,努力确定Google或SO上没有任何答案。我甚至还给了它一个Doug Flutie Hail Mary;

VIEW

<?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 } ?> 

我的头被捣字面上@这一点...感谢您解决这个任何线索。这也可能是我完全缺失的东西,以及没有人为错误的节日(哈哈!)。

UPDATE

目前我卡试图使用@manu约瑟夫& @webcrazymaniac建议的解决方案重新装备 - @webcrazymaniac:不知道如果我理解您的文章列表是如何构建的问题。可能是我没有为你发布足够的代码 - 请告诉我你需要看什么。至于为View链接的#modalItem包含echo - 对我来说没有任何不同。@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约瑟夫,我已经注意到,$ i = 0;只有当我不尝试在View按钮链接中添加article_id时,线条才能正常工作。 这就是答案在于我,因为当发生这种情况时,我回到了模式只显示基于点击链接的单个列表的问题,但它碰巧抓住相同的单数结果在模式内显示,不管点击按钮链接。有趣的是,现在我以前的分页问题是不存在的(大声笑!)。

如此接近我可以尝尝吧...

一个小时的tweakling已经得到了我的只显示一个单一的文章细节所需的(如歪斜)结果;

模式窗口视图链接

"<a href='".$a->article_id."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a> &nbsp;". 

MODAL内容

<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> 

图为结果: end desired result

我不知道,你可以看到(可能带有图像放大)光标箭头悬停在页面上的第1个View按钮上,但是没有返回具体的article_id。就像我说的那么近,我可以品尝它。

痛苦指数UPDATE:

谢谢你这么多@manu约瑟夫,他继续尝试设置我的权利 - 的代码;

<?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(); 
?> 


结果在下面的图片; Code rewrite by SO member @manu joseph


$i的值在上述标题的顶部和回荡增加后的值$i++在模态的底部是呼应和close按钮被消失了。因为它比我目前的整洁,所以我在玩你的排序。

我认为需要解决的是View按钮链接,因为当它们悬停时,显示正确的article_id,但模式总是只能设法拉入第一个记录集,并且从不增加显示下面的内容任何其他商品ID;

"<a href='".$a->article_id."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a> &nbsp;". 

我知道我是在这里发抖,并且正在与其他文章ID通过缺少重要东西来连接。任何其他您需要解答的问题,请随时询问。现在睡觉吧...

UPDATE
@webcrazymaniac列出了我几个读数真正引起他的意图帮我推到一个更好的方向发展,并保持位置@当下的解决方案;

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 } ?> 

以上是将模态放入视图的链接。现在我可以将第一个数据库结果拉入所有页面选择的模式中;

<!-- 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> 

Current code rewrite results

使用array_slice()对我来说,限制多少成绩,因为我不能没有突破前期指定限制了从拉链接的方式(专用)定义与分页相关的限制(并且我绝对是不想打扰那个)在模型中。我目前的模态功能;

public function modal($art_id=NULL) 
    { 
     $this->db->select('*'); 
     $this->db->from('tbl_article'); 
     $this->db->where('tbl_article.art_id =', $art_id); 
     $result = $this->db->get(); 
     return $result->result_array(); 
    } 

与我的分辨率只有分毫距离,我有点脑松鼠看到从树不见林在这一点上和我坚定地相信它是最微不足道的决议,但看不出它。

回答

-1

在所有的现实中 - 根据我的问题的措辞 - 我已经回答了;

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

使用array_slice我能够实现将结果拉入模态的限制。无法通过ID返回匹配文章内容的问题超出了原始问题的范围,并且需要它自己单独关注。感谢@manu约瑟夫@webcrazymaniac,分别为他们在这个问题上的努力。

+1

这是一个非常复杂的问题,但你自己却找到了最简单的答案!做得好! –

+0

谢谢@webcrazymaniac--但是我会因为投反对票而感到厌烦 - 当他们没有提供解决方案时,我感到不幸 - 但我所关心的只是越来越呃完成(哈哈!)。感谢指针 - **欣赏** ... – HomeOffice

0

总之,你的第一个问题

我在上返回的结果的foreach()循环的 强加限制的具体问题。如果我使用类似$ i = 0的东西; if($ i == 1)break;在foreach()之前的 ,我得到了与article_id结果相同的内容。

我相信你需要限制在视图中显示的行数?此外,如果你想只得到第一行,去

<?php 
     $i=0; 
     foreach ($article->result() as $a) { 

     if($i==1) break; 
     ?> 
     <button type='button' class='close' data-dismiss='modal'>&times;</button> 

- :如果是,你需要做的foreach循环内检查如下(U已经大括号开始:)之前把这个)

foreach ($article->row() as $a) { 

被修改线下面>>>>>>>>>

您好,@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. 打印“我”的值。
  2. 删除了一些不必要的div。
  3. 将死亡()放在最后。

让我知道你的输出是什么? ..

还让我有你试过这与$ article-> row()?

+0

不幸的@manu约瑟夫,我不能标记到任何种类的结果限制,直到我把$ i = 0; if($ i == 1)break;就在'foreach()'语句的左括号之前。我敢肯定,它会以某种方式咬我的背部......已经尝试过对上述线条进行各种操纵。 – HomeOffice

+0

嗨,我已修改视图代码如下: - –

+0

你好@manu约瑟夫,并感谢你的努力 - 我**做过使用'article-> result()作为行'的建议,但它只是正如我所期望的那样,因为这些元素在该状态下根本不被访问。我会马上尝试你的建议... – HomeOffice

1

您应该为表格中的每个元素使用一个id。然后调用您的按钮ID:

<a href='#modalItem<?php echo $a->id;?>' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a> 

应该这样做,虽然我的答案可以是更完整,但我得到你没有贴你应该已经发布的所有感觉。更确切地说,我无法得到它如何建立模态窗口后面的文章列表。

UPDATE: 如果我理解这一点没错,这是用来切换模式的元素按钮:

<a href='".$a->article_id."' class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>View</a> 

如果是这样,你必须在href添加 'ID'(#)辛博尔:

<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,用相应的按钮唯一地调用。

+0

检查在我上面更新的'MODAL WINDOW VIEW LINK'代码中,告诉我在哪里可以得到'php echo',因为我有很多问题试图将其插入到上面的命名行中。在那里获得article_id是我想到的第一件事。 – HomeOffice

+0

确定@webcrazymaniac - **你的**答案似乎正在带领我走向正确的方向。有机会回去阅读你发布的内容,虽然它没有给我我所追求的结果,但它有助于把它推向花园小路。对不起,我刚刚得到你告诉我的......谢谢。 – HomeOffice

相关问题