2012-04-06 84 views
1

我試圖做一個排序列表出來使用jQuery插件從數據庫填充列表項,但效果只適用於提出的第一項:jQuery的排序列表使用CodeIgniter

<?php if(isset($bookmarks)) : foreach($bookmarks as $row) :?> 
    <div id="makeDrag"> 

    <?php $fixed = preg_replace('#^[^:/.]*[:/]+#i', '', $row->URL); ?> 

    <li> 
     <div class="well"> 
      <div><?php echo anchor('http://'.$fixed, $row->Name); ?></div> 
      <div><strong>Comments:</strong> <?php echo $row->Comments; ?></div> 
      <h4 class="btn-small"> 
       <?php echo anchor("site/delete/$row->id", "Delete"); ?> 
      </h4> 
     </li> 
    </div> 
<?php endforeach; ?> 

我可以有點看到這是哪裏出錯,但不知道如何解決它。我顯然會喜歡這個效果影響所有人口不僅僅是第一個。任何幫助都會很棒。對不起,如果我不清楚,如果這是令人困惑的,我可以嘗試重新措辭。

+3

能否請您發表您使用的jQuery代碼。另外,關閉'div'和'''是錯誤的方法,你沒有'ul'或'ol'來包含你的'li',並且在內聯''裏面使用塊級'div'是無效的'。 – 2012-04-06 13:28:06

+0

我能夠通過切換一些標籤來完成這項工作。我很好奇,如何在不使用塊級別div的情況下實現相同的效果。 – Julian25 2012-04-07 20:34:39

+0

在CSS – 2012-04-08 09:50:48

回答

0

的原因可能是因爲你有

$('#makeDrag').sortable(); 

但你也必須創建多個#makeDrag元素從而使你的HTML無效foreach語句。

要解決這個問題:

<?php if(isset($bookmarks)) : ?> 
    <ul id="makeDrag"> 
    <?php foreach($bookmarks as $row) : ?> 
     <?php $fixed = preg_replace('#^[^:/.]*[:/]+#i', '', $row->URL); ?> 
     <li> 
      <div class="well"> 
       <div><?php echo anchor('http://'.$fixed, $row->Name); ?></div> 
       <div><strong>Comments:</strong> <?php echo $row->Comments; ?></div> 
       <h4 class="btn-small"><?php echo anchor("site/delete/$row->id", "Delete"); ?></h4> 
      </div> 
     </li> 
    <? endforeach; ?> 
    </ul> 
<?php endif; ?> 

HTH