这实际上主要是一个 Zend 问题,而不是一个 jQuery。
我正在尝试使用 Zend 实现 jQuery 嵌套排序http://mjsarfatti.com/sandbox/nestedSortable/,保存并读出可排序元素(包括它们的父元素)的确切位置。现在,我的 partialLoop 文件中有以下代码,这是我工作的主要部分。如果元素有子元素,它会在另一个 partialLoop() 方法中(递归地)调用自身,如下所示,即 partials/_docs-edit-row.phtml 本身:
<?php
// not really nice to call a db model in a view file, but is there an other way... ?
$docSectionModel = new Model_DocSection();
global $workedthrough, $i;
$childs = $docSectionModel->fetchChildSections($this->id);
if($childs)
$childs = $childs->toArray();
?>
<?php if(empty($workedthrough) || !in_array($this->id, $workedthrough)) : ?>
<?php $workedthrough[] = $this->id; ?>
<li>
<div class="handle">
<input type="hidden" class="section_id" name="section_id[<?php echo $i; ?>]" value="<?php echo $this->id; ?>" />
<input type="hidden" class="section_parent_id" name="section_parent_id[<?php echo $i; ?>]" value="<?php echo $this->parent_id; ?>" />
<input type="text" name="section_title[<?php echo $i; ?>]" value="<?php echo $this->title; ?>" />
<a href="#" class="open"></a>
</div>
<div class="inner-edit closed">
<textarea name="section_content[<?php echo $i; ?>]"><?php echo $this->content; ?></textarea>
<input type="submit" name="doc_save" value="Save" />
<input type="submit" name="remove_doc_section[<?php echo $i; ?>]" value="Remove this section" />
</div>
<?php if($childs) : ?>
<ol>
<?php echo $this->partialLoop('partials/_docs-edit-row.phtml', $childs); ?>
</ol>
<?php endif; ?>
</li>
<?php endif; ?>
<?php $i++; ?>
我在这里尝试做的是使用 $ia counter 创建,它通过两个循环来获得一个连续的计数器,因为 $this->partialCounter 将从每个新级别的开头开始。所以实际上这是我的主要问题(我在主视图文件中定义了 $i 以及 $workthrough 来查看项目是否已被检查以避免多次调用不在第一级的项目循环) $i 似乎出于任何原因都没有正确计算,而 $workthrough 就像一个魅力。 现在,是否有可能在所有部分循环中都有一个连续的计数器?另外,我真的很想知道是否有人有更好的方法来做我想做的事情。
如果某些事情看起来很奇怪或不清楚,我当然会解释。我很感激任何帮助!
最好的问候, .wired