実際、これは主に jQuery よりも Zend に関する質問です。
私はjQueryのネストされたSortable http://mjsarfatti.com/sandbox/nestedSortable/をZendで実装しようとしており、ソート可能な要素(親を含む)の正確な位置を保存して読み出そうとしています。私の作品の主要部分である partialLoop ファイルに次のコードがあります。要素の子があり、次のように見える場合、別の partialLoop() メソッドで (再帰的に) 自分自身を呼び出します。
<?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++; ?>
私がここでやろうとしていたのは、$this->partialCounter が新しいレベルごとに最初から開始されるため、両方のループを通過して継続的なカウンターを取得する $ia カウンターを作成することでした。実際、これが私の主な問題です(メインビューファイルに $i を定義し、 $workthrough を定義して、アイテムが終わったかどうかを調べて、アイテムの最初のレベルにないアイテムの複数の呼び出しを回避しますループ) $i は何らかの理由で適切にカウントされていないようですが、$workthrough は魅力的に機能します。 さて、すべての partialLoops で連続カウンターを持つことは可能ですか? また、私がやりたいことを行うためのより良いアプローチを誰かが得たかどうかを本当に知りたいです.
奇妙に見えたり、不明な点があれば、もちろん説明します。どんな助けにも感謝します!
敬具、.wired