带有CodeIgniter的jQuery可排序列表

时间:2012-04-06 13:27:27

标签: php jquery codeigniter

我正在尝试使用jQuery插件从数据库中填充列表项中的可排序列表,但效果仅应用于显示的第一个项目:

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

我可以看到这出错的地方,但不知道如何修复它。我显然希望效果影响所有填充的li而不仅仅是第一个。任何帮助都会很棒。对不起,如果我不清楚,如果这令人困惑,我可以尝试重新措辞。

1 个答案:

答案 0 :(得分:0)

原因很可能是因为你有

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

但你也有一个foreach语句,它会创建多个#makeDrag元素,从而使你的HTML无效。

解决此问题:

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