在跟踪父/子关系时迭代嵌套列表

时间:2013-04-24 22:10:57

标签: jquery html

感谢您抽出宝贵时间考虑我的问题。我正在创建一个界面,允许用户使用UL和LI标签基本上创建类别列表。然后我通过PHP将这些信息存储在MySQL数据库中,这样就可以检索并维护格式化。我已经解决了PHP方面的问题,以及从数据库中提取树并对其进行格式化。我遇到问题的部分是通过表单提交保存列表,并以可以遍历所有数据并知道父/子关系的方式将其传递给PHP。

列表的示例可能如下所示:

<ul>
<li>FAQ
    <ul>
        <li>Installing SynergiesMOD</li>
        <li>Updating SynergiesMOD</li>
        <li>Mod Not Working</li>
    </ul>
</li>
<li>Characters
    <ul>
        <li>Necromancer
            <ul>
                <li>Moves</li>
                <li>Guides</li>
            </ul>
        </li>
        <li>Warlock
            <ul>
                <li>Moves</li>
                <li>Guides</li>
            </ul>
        </li>
    </ul>
</li>
</ul>

此列表是完全可编辑的,因此在将任何特定内容提交到要解析并存储在数据库中的PHP代码之前,可以移动,删除或添加新类别。我正在绞尽脑汁,在将数据传递给PHP时保持家族关系的同时,无法想出循环类别的方法。如果你们中的任何人都有任何想法或建议,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

您还没有完全描述如何编辑列表中的每个项目。我想我会通过在每个项目上包含超链接来完成此操作,这些超链接将包含每个项目的ID,由下划线连接,例如。

1  FAQ
2  Characters

1_1 InstallingSynergiesMOD
1_2 UpdatingSynergiesMOD
1_3 Mod Not Working
2_1 Necromancer
2_2 Warlock

2_1_1 Moves
2_1_2 Guides

2_2_1 Moves
2_2_2 Guides

我假设层次结构中的每个项目都有一个关联的ID。

单击超链接时,可以显示相同的层次结构,但列表项由带有NAME =“x_y”的INPUT字段替换。如果按下确定按钮(或其他),这将导致提交FORM以及字段的数据。您传递字段的名称以获取ID,然后使用新值更新数据库。最后打印出新列表。

当然,你可以使用JSON / XML XMLHttpRequest而不是使用FORM来做同样的事情。

答案 1 :(得分:0)

每个li都应该有nodeId(也许是id的{​​{1}},然后您需要在javascript中计算li,引用它的父母,以维持等级关系