2016-07-06 25 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

相關問題